- 2012-06-10 (日) 0:59
 - Android
 
TextViewに表示したURLにリンクを張るには次の2通りの方法があります。
- レイアウトファイルでautolink属性を使う
 - プログラムでHTMLタグを埋め込む
 
レイアウトファイルでautolink属性を使う
TextViewタグにautolink属性を指定することでリンクを張ることができます。
<textview
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autolink="web"
    android:text="http://google.co.jp" />
				 
				autolink属性ではURL以外のリンクを張ることもできます。
				設定値およびリンク種別の対応は次の通りです。
| 設定値 | リンク種別 | 
|---|---|
| web | URL | 
| メールアドレス | |
| phone | 電話番号 | 
| map | 住所 | 
| all | 上記全て | 
HTMLタグを埋め込む
autolink属性による方法ではURLテキストに対してのみリンクが有効になります。
				任意のテキストに対してリンクを貼りたい場合には、プログラム側でHTMLタグを埋め込む必要があります。
まず、TextViewの setMovementMethod() により、ブラウザアクティビティを起動するリスナーを自動登録します。
				引数にMovementMethodオブジェクトを渡しますが、このオブジェクトはMovementMethodクラスの getInstance() で取得します。
MovementMethod movementmethod = LinkMovementMethod.getInstance(); tvLink.setMovementMethod(movementmethod);
 
				あとはHTMLのリンクタグ文字列からCharSequenceオブジェクトを作成し、TextViewに設定するだけです。
				リンクタグ文字列からCharSequenceオブジェクトの作成にはHtmlクラスの fromHtml() を使用します。
TextView tvLink = (TextView)findViewById(R.id.tv_Link); MovementMethod movementmethod = LinkMovementMethod.getInstance(); tvLink .setMovementMethod(movementmethod); String linkTag = "<a href=\"http://www.goolg.co.jp/\">" + "リンク" + "</a>"; CharSequence csLink = Html.fromHtml(linkTag); tvLink .setText(csLink);
 
				 
関連があると思われる記事:
- [Android] TextViewで一部だけ文字色を変更
 - [Android] TextViewでクリック処理
 - [WPF] DataGridのスクロール制御
 - [WPF] 色定義文字列からColorオブジェクトを生成
 - [Java] 現在日時の取得
 
- Newer: [Android] エミュレータと外部とのソケット通信
 - Older: [Java] 現在日時の取得
 
Comments:0
Trackbacks:0
- Trackback URL for this entry
 - http://gacken.com/wp/program/android/1363/trackback/
 - Listed below are links to weblogs that reference
 - [Android] テキストへのリンク設定 from ミライニトドケ