TextViewのURLを自動的にリンクにしてくれるのは簡単だった。
<TextView android:id="@+id/hoge" android:autoLink="web" />
こんな感じでautoLink="web"
をつけたらリンクにしてくれた。
しかし、このままだとインストールされているブラウザで開こうとする。 これをwebviewで開く時にどうすればいいの? というのがよくわからなかった。
いろいろググっていくと、以下のqiitaが見つかる。
LinkMovementMethod
を拡張している。
このページにあるようなMutableLinkMovementMethod
を作って、
以下のようにすればリンクをクリックしたらwebviewで見れるようになった。
TextView hoge = (TextView) v.findViewById(R.id.hoge); MutableLinkMovementMethod mutableLinkMovementMethod = new MutableLinkMovementMethod(); mutableLinkMovementMethod.setOnUrlClickListener(new MutableLinkMovementMethod.OnUrlClickListener() { @Override public void onUrlClick(TextView widget, Uri uri) { Intent intent = new Intent(widget.getContext(), MyWebViewActivity.class); intent.putExtra("WEBVIEW_URL", String.valueOf(uri)); widget.getContext().startActivity(intent); } }); hoge.setMovementMethod(mutableLinkMovementMethod);
※MyWebViewActivity
というWebViewを表示するためのActivityは作っておきます
もっといい感じの方法はないのかなぁと思うけどないからこういうハックをしてるのかー。 と思った今日このごろ。