Home > Android > [Android] テキストへのリンク設定

[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
email メールアドレス
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] テキストへのリンク設定
Facebook にシェア
[`google_buzz` not found]
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]
[`grow` not found]

Comments:0

Comment Form
Remember personal info

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

Home > Android > [Android] テキストへのリンク設定

Search
Feeds
Meta
人気の記事

Return to page top