我在textview的属性里设置了android:autoLink="web",然后textview里的网络地址就可以点击了,但是我想点击这个网络地址后,就跳到另一个activity,而不是跳转到手机里的浏览器,请问该怎么实现呢?
在textview上注册个监听事件,跳转一下
intent可以传数据啊,intent.putExtra(...); startActivity(intent);然后到 webview把数据取出来 getExtra(...);再加载不就可以了吗?
有几种做法的
一个是你在AndroidManifest.xml里面添加intent-filter事件,捕获http请求
一个是你在TextView里面做文章,像下面这样
SpannableString ss = new SpannableString("chuibin.com");
ss.setSpan(new URLSpan("http://www.chuibin.com"),元宵祝福网页 0, 9,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
myTextView.setText(ss);
myTextView.setMovementMethod(LinkMovementMethod.getInstance());
TextView content = (TextView)findView(R.id.content);
content.setMovementMethod(LinkMovementMethod.getInstance());
CharSequence text = content.getText();
if (text instanceof Spannable) {
int end = text.length();
Spannable sp = (Spannable) content.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(item,url.getURL());
style.setSpan(myURLSpan, sp.getSpanStart(url),
sp.getSpanEnd(url),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
content.setText(style);
}
////
private class MyURLSpan extends ClickableSpan {
private String mUrl;
MyURLSpan(Message msg,String url) {
mUrl = url;
}
@Override
public void onClick(View widget) {
Intent intent = new Intent(MessageActivity.this,
WebTurnViewActivity.class);
intent.putExtra("url", mUrl);
MessageActivity.this.startActivity(intent);
}