AndroidアプリのTextViewにウェブのURLを貼りつける


Androidアプリで文字を表示するときはTextViewを使いますね。 
今回はそのTextViewに、URLを貼りつけて、そのURLにタッチしたらブラウザを立ち上げる方法を解説します。 
 
拙作『ほむほむ語変換』のトップページで、まさにそれをやっています。 
1 
 
やり方を知らなかったら、TextViewを3段組んで、ひとつひとつ文字色を変更して、2段目のTextViewにクリックリスナーを設定して、クリックされたらUriにURLをぶちこんで……という風に作ってしまうと思います。 
 
スマートなやり方として、TextViewにセットするString変数をHTMLソースとして認識させる方法があります。 
 
まずは、レイアウトXMLの方にTextViewを設置します。 

android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ddffffff"
android:textSize="14sp"
android:text="aaa"
android:textColor="#dd6666" />

 
こちらはいつも通りですね。 
 
次にソースコードの方です。 

text1 = (TextView) findViewById(R.id.text1);

MovementMethod mm = LinkMovementMethod.getInstance();
text1.setMovementMethod(mm);

String html = "不具合や、ご意見ご要望などございましたら、<br><a href=\"https://twitter.com/gucci1208\">twitterID:gucci1208</a><br>までご気軽にどうぞm(_ _)m";
CharSequence cs = Html.fromHtml(html);

text1.setText(cs);

 
URLをタッチしてブラウザを起動するのを有効にしたり、String変数をHTMLとして識別したりしています。 
 
特に、↓ここで実際の文字列を指定するのですが、HTMLなので、改行コードは「\n」ではなくて「<br>」ですね。 
あと、「”」(ダブルクオーテーション)をエスケープしたりしています。 

String html = "不具合や、ご意見ご要望などございましたら、<br><a href=\"https://twitter.com/gucci1208\">twitterID:gucci1208</a><br>までご気軽にどうぞm(_ _)m";

 
 
うまく使いこなせば、リッチなTextViewに仕上げることができます。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください