Android的TextView是个很强大的控件,通过Html类处理html文本后可以支持部分html标签。有时候需要捕获TextView中标签的点击事件进行自己的超链接点击处理,下面的代码用于捕获TextView中标签点击后的响应事件:

        CharSequence charSequence = Html.fromHtml(strHtml);        SpannableStringBuilder builder = new SpannableStringBuilder(charSequence);        URLSpan[] urlSpans = builder.getSpans(0, charSequence.length(), URLSpan.class);        for(URLSpan span : urlSpans){            int start = builder.getSpanStart(span);            int end = builder.getSpanEnd(span);            int flag = builder.getSpanFlags(span);            final String link = span.getURL();            builder.setSpan(new ClickableSpan() {                @Override                public void onClick(View widget) {                    //捕获标签点击事件,及对应超链接link                }            }, start, end, flag);            builder.removeSpan(span);        }        textView.setLinksClickable(true);        textView.setMovementMethod(LinkMovementMethod.getInstance());        textView.setText(charSequence);

总结为三个步骤:

  1. 使用Html.fromHtml(String strHtml)转换html标签字符串,fromHtml()方法中会对html标签进行替换,并html标签封装成对应的格式对象。其中每一个标签都会对应一个URLSpan对象。
  2. 获取文本中所有的URLSpan对象,取出URLSpan对象的对应的位置、标识、以及对应的url地址后,使用ClickableSpan对象进行替换,并做自己的超链接逻辑处理。
  3. Textview设置链接可点击,以及点击响应处理属性。

更多相关文章

  1. Android(安卓)Studio报:“Attribute application@theme or @ icon
  2. SearchView使用
  3. Android中使用OnClickListener接口实现按钮点击的低级失误
  4. 【Android性能优化】Android图片加载方案--Bitmap的内存管理和优
  5. Android(安卓)不得不知 之 Parcelable
  6. android NDK 入门之在JNI中修改java中对象的成员变量的值
  7. android调用手机摄像头拍照
  8. Android中传递对象的三种方法
  9. 想在Android上用一下PureMVC,谁知结果……

随机推荐

  1. MAC下Android的Eclipse开发环境的搭建 转
  2. onInterceptTouchEvent和onTouchEvent调
  3. Android(安卓)7.0拍照出现android.os.Fil
  4. android:TimePicker仿照IOS时间选择器,可
  5. android中,显示圆形图片
  6. Ubuntu12.04 eclipse DDMS卡死-解决办法
  7. toast的五种效果
  8. Android中Telephony学习总结
  9. android 横竖屏切换,activity的生命周期
  10. Android开发所需的Android(安卓)SDK、开