私はtextViewと次のようなテキストを持っています
「これは、キーワードとブラウズするためのリンクを含む単純なテキストです」
上記のテキストで私が作りたい..
リンクをクリックすると、その URL が開き 、 そのキーワードをクリックすると、アプリケーションで新しいアクティビティが開きます
また、 TextView全体のクリックイベントもあります。
解決策を見つけるのを手伝ってください。ありがとう、MKJParekh
私はtextViewと次のようなテキストを持っています
「これは、キーワードとブラウズするためのリンクを含む単純なテキストです」
上記のテキストで私が作りたい..
リンクをクリックすると、その URL が開き 、 そのキーワードをクリックすると、アプリケーションで新しいアクティビティが開きます
また、 TextView全体のクリックイベントもあります。
解決策を見つけるのを手伝ってください。ありがとう、MKJParekh
あなたができることはClickableSpan
、以下のようにカスタムを作成することです.
class MyCustomSpannable extends ClickableSpan
{
String Url;
public MyCustomSpannable(String Url) {
this.Url = Url;
}
@Override
public void updateDrawState(TextPaint ds) {
// Customize your Text Look if required
ds.setColor(Color.YELLOW);
ds.setFakeBoldText(true);
ds.setStrikeThruText(true);
ds.setTypeface(Typeface.SERIF);
ds.setUnderlineText(true);
ds.setShadowLayer(10, 1, 1, Color.WHITE);
ds.setTextSize(15);
}
@Override
public void onClick(View widget) {
}
public String getUrl() {
return Url;
}
}
onClick()
また、アクティビティまたは URL を開くために使用します。で URL を読み込むためのデモを追加していますWebView
。
String text = "http://www.google.co.in/";
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(text);
MyCustomSpannable customSpannable = new MyCustomSpannable(
"http://www.google.co.in/"){
@Override
public void onClick(View widget) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(customSpannable.getUrl()));
startActivity(intent);
}
};
stringBuilder.setSpan(customSpannable, 0, text.length(),
Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText( stringBuilder, BufferType.SPANNABLE );
textView.setMovementMethod(LinkMovementMethod.getInstance());
次の方法でTextViewを生成します。
TextView t3 = (TextView) findViewById(R.id.text3);
t3.setText(Html.fromHtml("This is the Simple Text with
<a href=\'http://www.google.com\'>Keyword</a> and the
<a href='startActivityFromLink://some_info'>Link</a> to browse"));
t3.setMovementMethod(LinkMovementMethod.getInstance());
次の方法でアクティビティを指定します。
<activity android:name=".TestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="startActivityFromLink" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
私はそれがうまくいくはずだと思います。微調整が必要な場合があります。私はそれをテストする時間がありませんでした。動作するかどうか教えてください。
この質問でここで答えたのと同じものを使用しました
そのために、このLinkEnabledTextViewを使用しました。これにより、タスクを簡単に実行できるようになりました。
Keyword と The link を別の TextViews にします。
次に、これを行った後に TextView.onClickListener() を設定します。
これは最も簡単な方法であり、より論理的な方法です。