androidでtextviewにHTMLリンクを設置する

androidアプリ開発逆引きレシピより

 

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なども代入できる 。

xmlのみの記述でOK。javaいじらなくてよし。

 

やり方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を使っていくこともあるのでしょうけど、今のところ不明です。

 

javaのみの記述でOK.xmlいじらなくてよし。

 

参考:

https://developer.android.com/reference/android/widget/TextView.html#attr_android:autoLink

 

その他参考:

android5(API21)以上のとき、リンク表記バグ?

android:text="aaa.bbb"←URLじゃないのにリンクとして表示される

AndroidのTextViewのautolink=webが冗長になる - Qiita