androidでtextviewにHTMLリンクを設置する
android開発スキルがまだまだ虚弱なため、逆引きレシピを購入し、できることを増やしつつ、作れる種類を増やしていくつもりです。レシピにあるコードを書きながら、それを使ったアプリを作る感じで取り組んでいます。
本論
HTMLでは、周知のとおり、<a href="ここURL" >テキスト</a>でハイパーリンクを作れます。URLは直接表示されません。URLを文字として表示したい場合には(ここテキスト)のところにURLを記述すればテキストとして出力できます。
androidでは1行書けば終わりということはないので、始め少し面倒臭さを感じます。覚えておくとなるとさらに手間になります。aタグみたいにユニークなタグを使えばいいのですが、属性として覚えるので、ちょっと違和感ありですね。ま、困ったときにはぐぐればいいのです、ぐぐれば!
やり方2通り
やり方1.xmlファイルのTextViewに
<TextView
android:~~~
android:autoLink="web"
android:text="タイトルテキストだよ: http://www.google.com"
/>
textのほうには、URLが自動的にリンク表示になります。一組のダブルクォーテーションの中に記述します。もちろん「タイトルテキスト」は書かなくてもかまいません。
webのところに,email,map,phoneなども代入できる 。
やり方2.javaファイルに
TextView textview = (TextView)findViewById(R.id.textview);
textview.setAutoLinkMask(Linkify.WEB_URLS);
textview.setText("タイトルテキストだよ:http://www.google.com");
いつものtextviewにテキスト表示させるやり方にsetAutoLinkMask(Linkify.WEB_URLS);を追記。ややこしいので、やり方1がとりあえず簡単に使えそうです。使い方次第ではやり方2を使っていくこともあるのでしょうけど、今のところ不明です。
参考:
https://developer.android.com/reference/android/widget/TextView.html#attr_android:autoLink
その他参考:
android5(API21)以上のとき、リンク表記バグ?
android:text="aaa.bbb"←URLじゃないのにリンクとして表示される
AndroidのTextViewのautolink=webが冗長になる - Qiita