public class TextHtmlActivity extends Activity {    private TextView text;    private Activity mActivty;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.text_html_layout);        mActivty = this;        text  = (TextView) findViewById(R.id.text);        text.setText(Html.fromHtml("text3:  " +                "Text with a " + "link " +                "点击这个连接---"+                "连接 "+                "created in the Java source code using HTML."));        text.setMovementMethod(LinkMovementMethod.getInstance());        CharSequence str = text.getText();        if(str instanceof Spannable){            int end = str.length();            Spannable sp = (Spannable)text.getText();  //构建Spannable对象、继承Spanned、Spanned对象继承CharSequener            URLSpan[] urls=sp.getSpans(0, end, URLSpan.class);  //找出text中的a标签            //SpannableStringBuilder、SpannableString对象跟String对象差不多、只是比String对象多setSpan,            //可以给字符串设置样式、大小、背景色...而 SpannableStringBuilder跟SpannableString的关系就跟String跟StringBuffer关系一样            SpannableStringBuilder style=new SpannableStringBuilder(str);            style.clearSpans();//should clear old spans            for(URLSpan url : urls){                MyClickSpan myURLSpan = new MyClickSpan();                //设置样式其中参数what是具体样式的实现对象,start则是该样式开始的位置,end对应的是样式结束的位置,                // 参数 flags,定义在Spannable中的常量                style.setSpan(myURLSpan,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);            }            text.setText(style);        }    }    private class MyClickSpan extends ClickableSpan{        @Override        public void updateDrawState(TextPaint ds) {            ds.setUnderlineText(false);            super.updateDrawState(ds);        }        @Override        public void onClick(View widget) {            Toast.makeText(mActivty,"click link",Toast.LENGTH_SHORT).show();        }    }}

更多相关文章

  1. Android主题和样式
  2. Android高德地图获取当前地理位置(不显示地图只获取当前位置)
  3. android 使用Intent传递对象 Serializable 或者 Parcelabel 《第
  4. 怎么给Android(安卓)控件添加边框(样式)?
  5. Android Material Design 进度条 自定义进度条样式
  6. 仿WP8样式的Android ProgressBar
  7. MIUI 惊艳锁屏样式5款[Android] | 小众软件 > Android
  8. Android 相机拍照获取图片并保存到指定位置。
  9. android Button 样式

随机推荐

  1. android 获取设备型号
  2. android文件读取
  3. Android(安卓)EditText保留小数点后两位
  4. Android(安卓)API 指南
  5. Android(安卓)图片倒影和setXfermode
  6. Android(安卓)Q 下拉状态栏快捷开关解析
  7. android布局属性详解
  8. Android(安卓)创建菜单栏
  9. android studio编译错误 之 Cause: com/a
  10. Android(安卓)视频播放