您的位置:首页 > 移动开发 > Android开发

android textview 自动链接网址 修改默认点击事件

2016-04-26 20:19 726 查看
1 修改XML文件即可,android:autoLink="web" 
[code=xml"] 
<TextView 
        android:id="@+id/text_view" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:autoLink="all" 
        android:text="@string/hello" /> 

autoLink有好几种类型:web phone all等。 

2 修改链接的默认点击事件 

Java代码  


public class HtmlAllTestActivity extends Activity{  

    private TextView tv;  

      

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.main);  

        this.tv = (TextView)findViewById(R.id.text_view);  

          

        CharSequence text = tv.getText();  

        if (text instanceof Spannable) {  

            int end = text.length();  

            Spannable sp = (Spannable) tv.getText();  

            URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);  

            SpannableStringBuilder style = new SpannableStringBuilder(text);  

            style.clearSpans();// should clear old spans  

            for (URLSpan url : urls) {  

                MyURLSpan myURLSpan = new MyURLSpan(url.getURL());  

                style.setSpan(myURLSpan, sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);  

            }  

            tv.setText(style);  

        }  

    }  

      

      

    private  class MyURLSpan extends Clickable
b4e8
Span {  

  

        private String mUrl;  

  

        MyURLSpan(String url) {  

            mUrl = url;  

        }  

  

        @Override  

        public void onClick(View widget) {  

            Toast.makeText(HtmlAllTestActivity.this, mUrl, Toast.LENGTH_LONG).show();  

            widget.setBackgroundColor(Color.parseColor("#00000000"));  

        }  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: