は、私は私のアプリでの活動を開始TextView
でHTML
リンクを持っているしたいと思います。TextViewのHTMLリンクをクリックしてカスタムアクションを取得できますか?
これを行う方法については多くの回答がありますが、そのほとんどが非標準のURI
スキーム(パッケージ名など)を使用し、このためのACTION_VIEWを取得するようです。
答えの多くは、これをしないと言って、わずかに異なる状況でもあります...そこにアンドロイドで完璧な意思URIスキームがすでにあり、あなたはそのスキームの中にカスタムアクションを定義することができます。
私の問題は、TextView
のHTMLリンクをクリックすると納得できるすべてがACTION_VIEW
を生成するという点で、2つを組み合わせることができないということです。ここでカスタムアクションを実行する方法はありますか?
EDIT OK、TextViewには....それぞれのURLSpanを持ってSpannable割り当てられ、URLSpanがあります
@Override
public void onClick(View widget) {
Uri uri = Uri.parse(getURL());
Context context = widget.getContext();
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
try {
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
Log.w("URLSpan", "Actvity was not found for intent, " + intent.toString());
}
}
そうそう、私はVIEWアクションでこだわっているように見えます。みんな、ありがとう。
使用クリッカブルスパンは、テキストの一部をクリックしてください。それがあなたがする必要があるならば。 – ADM
私はhtmlの*たくさんの*を持っています。私はむしろ、それは私の意図を得るためにする必要が何であれにはを変更するには...リンクを取得するためにはるかに優れたカスタムコードを記述しないと思います。とにかく* a *のクリックは問題ありません...私はそれがVIEWアクションではないことを好むでしょう。 –
あなたのHTMLテキストを 'TextView'に適用する前にそれを操作できますか?もしそうなら、 'String :: replace'関数を使って既存のリンクアドレスを別の場所を指すように交換できますか? – PPartisan