サーバーから取得したテキストで満たされた TextView があります。すべてのリンク検索を処理し、必要に応じて addLinks メソッド全体で URLSpan を設定するためにLinkifyを使用しています。
問題は、リンクをクリックしたときのデフォルトの動作がブラウザで開くことです。私が望むのは、クリックされたリンクを取得して自分で処理することです。
「OnClick」などを設定できるLinkifyの方法が見当たりません...
お手伝いありがとうございます :)
また、カスタム Spannable ロジックをアプリに実装するのは面倒で、最終的にはそのためのライブラリを作成することになります。Textooを参照してください。
を使用Textoo
すると、次のように実現できます。
TextView myTextView = Textoo
.config((TextView) findViewById(R.id.my_text_view))
.linkifyEmailAddresses()
.linkifyMapAddresses()
.linkifyPhoneNumbers()
.linkifyWebUrls() // or just .linkifyAll()
.linkify(patternSettings, "internal://settings/")
.linkify(patternGoogle, "http://www.google.ie/search2?q=", null, transformFilter)
.linkify(patternGoogle, "http://www.google.ie/search3?q=", matchFilter, transformFilter)
.addLinksHandler(new LinksHandler() {
@Override
public boolean onClick(View view, String url) {
if ("internal://settings/location".equals(url)) {
Intent locSettings = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(locSettings);
return true;
} else {
return false;
}
}
})
.apply();
共有して、誰かが役立つことを願っています。
TextView の代わりに WebView を使用する必要がありますか?