TextViewでsetAutoLinkMaskを設定すれば、自動的にリンクが有効になります。
dialogで表示するテキストに対してリンクを張りたい場合は、TextViewを生成しsetAutoLinkMaskを設定し、そのViewをdialogに設定すればよいと思います。
サンプルコード
android 1.6 で試しています。
レイアウトファイルはボタンを一つだけ用意しておきます。
文字列リソースを下記のように定義します。
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="btn_caption">push me</string> <string name="title">dialog title</string> <string name="text">これはサンプルで表示しているテキストです。http://www.mori-soft.com</string> <string name="app_name">DialogLinkSample</string> </resources>
リソースID text で示される文字列中にURLが含まれています。これをダイアログで表示した際に、自動的にリンクが有効になります。
アクティビティを下記のようにします。
package com.mori_soft.android.dialoglinksample; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.os.Bundle; import android.text.util.Linkify; import android.view.View; import android.widget.Button; import android.widget.ScrollView; import android.widget.TextView; public class DialogLinkSample extends Activity { private static final int DIALOG_ID = 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showDialog(DIALOG_ID); } }); } @Override protected Dialog onCreateDialog(int id) { switch(id) { case DIALOG_ID: TextView tv = new TextView(this); tv.setAutoLinkMask(Linkify.WEB_URLS); String str = this.getString(R.string.text); tv.setText(str); ScrollView sv = new ScrollView(this); sv.addView(tv); AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle(R.string.title) .setIcon(android.R.drawable.ic_menu_info_details) .setView(sv); return builder.create(); } return super.onCreateDialog(id); } }
ボタンを押したら、ダイアログを表示します。
onCreateDialogでは、TextViewを動的に生成して、setAutoLinkMaskを設定します。ここでは、URLを有効にするために、Linkify.WEB_URLSを指定しました。設定する値によっては、電話番号などにリンクを張ることもできます。
なお、上記サンプルではスクロールビューにTextViewを設定し、スクロールビューをダイアログに設定しているので、テキストが長くなると自動的にスクロールが有効になるようにしています。
これを実行して、ボタンを押すと、
のようにダイアログが表示され、URLの箇所が色が変わっていることがわかります。
ここで、リンクをクリックするとブラウザが立ち上がり、指定URLのサイトが開きます。
なお、この時ダイアログを表示しているアプリには、インターネットアクセスのパーミッションは与えていません。