如何通过 autolink
web 设置控制 textView onclicklistener
或者换句话说,拦截 autolink web OnClick
事件?
例如,String text="Lucy is very nice.Here is her link.https://www.google.com";textview.setText(text);
单击“https://www.google.com”时,我可以捕捉到它并跳转到我的应用程序 Activity 而不是网络浏览器。
Textview有一个属性“autolink”。我设置autolink为web.android:autoLink="web"所以,android系统可以自动检测url。当点击url时,它会跳转到浏览器。现在点击时,我不想跳转到浏览器,我只想跳转到我的应用程序 Activity 并留在应用程序中。
最佳答案
感谢您的所有回答。现在我找到了问题的答案。有两个步骤。
1.你需要设置Textview属性。 android:autoLink="网络"
<TextView
android:id="@+id/text_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:text="Lucy is very nice.Here is her link.https://www.google.com" />
2.override URL onclick.有一个例子。
公共(public)类 MainActivity 扩展 Activity {
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
CharSequence text = tv.getText();
if (text instanceof Spannable) {
int end = text.length();
Spannable sp = (Spannable) text;
URLSpan urls[] = sp.getSpans(0, end, URLSpan.class);
SpannableStringBuilder style = new SpannableStringBuilder(text);
style.clearSpans();
for (URLSpan urlSpan : urls) {
MyURLSpan myURLSpan = new MyURLSpan(urlSpan.getURL());
style.setSpan(myURLSpan, sp.getSpanStart(urlSpan),
sp.getSpanEnd(urlSpan),
Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
}
tv.setText(style);
}
}
private class MyURLSpan extends ClickableSpan {
private String url;
public MyURLSpan(String url) {
this.url = url;
}
@Override
public void onClick(View arg0) {
Toast.makeText(MainActivity.this, url, Toast.LENGTH_LONG).show();
}
}
}
3.上面的代码完美解决了我的问题。所以当我在Textview中点击www.google.com时,url会显示出来并跳转到特定的activity。
关于android - 如何使用自动链接 Web 设置或换句话说,拦截自动链接 Web OnClick 事件来控制 textView onclicklistener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38559387/