- 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 ミライニトドケ