概ねタイトル通りです。
TextViewにリンクを付ける方法です。
挙動としてはhtmlのリンクタグみたいな感じですね。
アプリから他のアプリを呼び出す方法としてはインテント(暗黙的Intent)などがありますが、
今回はLinkifyクラスを使った方法を紹介してみます。
使い方はとても簡単。
リンクを付けたいTextViewをLinkify.addLinks関数の引数に入れるだけです。
TextViewにメールアドレスリンクを付ける
テキストビューにメールアドレスをセットして、
第二引数をLinkify.EMAIL_ADDRESSESにします。
TextView text_mail = new TextView(this);
text_mail.setText("sample@test.com");
Linkify.addLinks( text_mail, Linkify.EMAIL_ADDRESSES );
【実行結果】
TextViewに電話番号リンクを付ける
続いて電話番号。
今度は引数をLinkify.PHONE_NUMBERSにします。
TextView text_tel = new TextView(this);
text_tel.setText("090-0909-0909");
Linkify.addLinks( text_tel, Linkify.PHONE_NUMBERS);
【実行結果】
TextViewにURLリンクを付ける
最後にURL引数はLinkify.WEB_URLSです。
TextView text_url = new TextView(this);
text_url.setText("http://blog.oukasoft.com");
Linkify.addLinks( text_url, Linkify.WEB_URLS);
【実行結果】
今回は1つずつ引数の種類を選んで登録しましたが、
Linkify.ALL を使えば自動で判定してくれるみたいですね。
賢いなさすがAndroidかしこい。
今回の3つのケースをまとめたサンプルです。
サンプルブログラム
public class Sample20120625Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
setContentView(ll);
//TextViewを生成
TextView text_mail = new TextView(this);
TextView text_tel = new TextView(this);
TextView text_url = new TextView(this);
//リンクを付けるテキストをセット
text_mail.setText("Mail : sample@test.com");
text_tel.setText("電話番号 : 090-0909-0909");
text_url.setText("URL : http://blog.oukasoft.com");
//リンクに変換
Linkify.addLinks( text_mail, Linkify.EMAIL_ADDRESSES );
Linkify.addLinks( text_tel, Linkify.PHONE_NUMBERS);
Linkify.addLinks( text_url, Linkify.WEB_URLS);
//レイアウトにセット
ll.addView(text_mail);
ll.addView(text_tel);
ll.addView(text_url);
}
}
暗黙的Intentを使うより楽チンですね。(^ω^)






