android - 如何使用自动链接 Web 设置或换句话说,拦截自动链接 Web OnClick 事件来控制 textView onclicklistener?

标签 android

如何通过 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/

相关文章:

java - 如何在单击时更改按钮,并在释放按钮时恢复正常?

android - 如何在设置( ListView )中仅更改一个 TextView 的字体大小?

android - DownloadManager 为下载失败发送 STATUS_SUCCESSFUL

android - 如何加快我的Android-openCV应用程序的速度?

java - facebook sdk java查询使用图形API或url/http从actor_id获取名称

java - Android:这里 map sdk的 map 显示的坐标不准确

android - 跨平台应用程序开发和混合应用程序开发有什么区别?

Android如何实现ssdp live接收功能

android - 我的代码有什么问题吗?

android - AWS MobileHub : Rename Android/iOS sample project