当前位置: 代码迷 >> Android >> android textview 自动链接因特网址 修改默认点击事件
  详细解决方案

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

热度:66   发布时间:2016-05-01 20:44:53.0
android textview 自动链接网址 修改默认点击事件
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 修改链接的默认点击事件
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 ClickableSpan {		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"));		}	}}
  相关解决方案