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

Android之TextView------LINK的点击事件

2014-08-07 14:24 393 查看
package com.TextHtml;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.URLSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public   class  TextHtml extends Activity {
/* * Called when the activity is first created.  */
private  TextView  tv;
static  Context ctx = null ;
@Override
public   void  onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx = this ;
tv  =  (TextView) findViewById(R.id.tv);
  String htmlLinkText= " <a href=\\" +"<a href="http://www.baidu.com/><u">http://www.baidu.com/><u</a>>我的CSDN博客 </u></a>"; 
tv.setText(Html.fromHtml(htmlLinkText));
tv.setMovementMethod(LinkMovementMethod.getInstance());
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_EXCLUSIVE);
}
tv.setText(style);
}

}

private   static   class  MyURLSpan extends ClickableSpan{

private  String mUrl;
MyURLSpan(String url) {
mUrl  = url;
}
@Override
public   void  onClick(View widget) {
//  TODO Auto-generated method stub
Toast.makeText(ctx,  " hello! " ,Toast.LENGTH_LONG).show();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: