ページ

2012年1月9日月曜日

TextViewに押下可能なリンクを設定する。

TextViewにURLやメールアドレスなどを記述して、押下する事によってメーラやブラウザを起動出来るようにする。


ちなみに今回はJavaで指定する方法です。

httpから始まる文字列にリンクをつけたい場合は、TextView.setAutoLinkMaskにLinkify.WEB_URLSを設定する。
        TextView textView = new TextView(context);
        textView.setAutoLinkMask(Linkify.WEB_URLS);

メールアドレスにリンクをつけたい場合は、TextView.setAutoLinkMaskにLinkify.EMAIL_ADDRESSESを設定する。
        TextView textView = new TextView(context);
        textView.setAutoLinkMask(Linkify.EMAIL_ADDRESSES);

URLにもメールアドレスにもリンクをつけたい場合は、TextView.setAutoLinkMaskにLinkify.EMAIL_ADDRESSESとLinkify.EMAIL_ADDRESSESを「|」でつなげて設定する。
        TextView textView = new TextView(context);
        textView.setAutoLinkMask(Linkify.WEB_URLS | Linkify.EMAIL_ADDRESSES);

これだけ。
簡単ですね。

他には電話番号とか、全部指定とかもある。

あと気になったのは、TextViewにはappendメソッドがあるが、こちらでリンク対象文字列をセットするとリンクされない・・・。

        TextView textView = new TextView(context);
        textView.setAutoLinkMask(Linkify.WEB_URLS);
        textView.setText("http://www.yahoo.co.jp/");
        textView.append("http://www.google.co.jp/");
これだとyahoo.co.jpはリンクされるけどgoogleにはリンクがつかない・・・。はて・・・。
まぁ、StringBuilderで表示したい文字列を全部くっつけてからsetText()を呼べば問題ないから良いか・・・。
おわり

0 件のコメント:

コメントを投稿