在开发过程中有时候需要实现TextView部分文字的点击效果,实现该功能可以自定义文本控件,也可以用android源生api实现

1、SpannableString是CharSequence接口的实现类,同时它也实现了Spannable接口;

  ①SpannableString通过setSpan方法可以设置TextView文本的各种样式,包括文本中插入图片(ImageSpan),前景色(ForegroundColorSpan),背景色(BackgroundColorSpan)等

  ②SpanableString也可以通过设置ClickableSpan设置某一些文字可以被点击

  ③复写ClickableSpan中的方法

ClickableSpan click = new ClickableSpan() {@Overridepublic void onClick(View widget) {Toast.makeText(OptionalInfoActivity.this, "该功能尚未实现",Toast.LENGTH_SHORT).show();}@Overridepublic void updateDrawState(TextPaint ds) {ds.setUnderlineText(false);ds.clearShadowLayer();ds.setColor(getResources().getColor(R.color.custom_blue));ds.setStrokeMiter(3);}};

View Code

   

SpannableString spannable = new SpannableString(text);ClickableSpan click = new ClickableSpan() {@Overridepublic void onClick(View widget) {Toast.makeText(OptionalInfoActivity.this, "该功能尚未实现",Toast.LENGTH_SHORT).show();}@Overridepublic void updateDrawState(TextPaint ds) {ds.setUnderlineText(false);ds.clearShadowLayer();ds.setColor(Color.RED);}
};spannable.setSpan(click,start,end,SpannableString.SPAN_INCLUSIVE_INCLUSIVE);

View Code

  TextView.setText(spannable);

  api文档中说道If an object of this type is attached to the text of a TextView with a movement method of LinkMovementMethod, the affected spans of text can be selected. If clicked, the onClick(View) method will be called.

  故还必须给这个TextView设置 TextView.setMovementMethod(LinkMovementMethod.getInstance());

  

转载于:https://www.cnblogs.com/Professionalbutcher/p/3628009.html

TextView中实现部分文字点击相关推荐

  1. 在Textview中获取指定文字位置(兼顾网址链接和emoji表情),并在其附近展示图片

    本文主要讲在Textview中获取指定文字的位置,最后,附带一点文字宽高的测量. 下面,我会给出全部源码.自己建个demo,复制进去就能跑起来. 先强调一下,不建议在ListView中使用.最好是在一 ...

  2. Android TextView中设定个别文字字体显示格式

    Android TextView中设定个别文字字体显示格式 文章分类:移动开发 用Html来格式化字符,例如要实现如下的显示: "这只是一个测试字符串,测试黑体字.斜体字.下划线.红色字的显示." 可 ...

  3. java textview多行_java-Android在textview中多个可点击的字符串

    我正在创建一个小型 Android应用程序.我想在textview中显示一个文本,其中包含多个要单击的部分. (每个都应显示一些不同的消息) 最终,我设法找到了如何在一个textview中显示多个跨度 ...

  4. android 字体点击变色,Android TextView 中实现部分文字变色以及点击事件

    首先要想实现文字变色以及点击,都需要使用到SpannableStringBuilder,实例化该类也很简单,只需将你想要处理的字符串当做参数 SpannableStringBuilder spanna ...

  5. 安卓TextView中改变部分文字颜色的几种方式

    1. 第一种使用SpannableStringBuilder //部分文字改变颜色 //ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色 For ...

  6. Android TextView中改变部分文字颜色的几种方式

    1. 第一种使用SpannableStringBuilder //部分文字改变颜色 //ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色 For ...

  7. android clickablespan listview,解决TextView中ClickableSpan点击事件

    需求背景: 在TextView中包含局部可点击的链接,且改链接其他地方也是有相应的点击事件 其实需求比较合理,实现也应该不难,于是简单的demo如下: TextView content = (Text ...

  8. 浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应

    超文本:http://www.baidu.com 这么一个效果:一行文本当中 前面显示黑色颜色的"超文本:",后面显示红色颜色的"http://www.baidu.com ...

  9. android 自定义span_Android自定义可点击的ImageSpan并在TextView中内置View

    有的时候可能想在TextView中添加一些图片,比如下图,发短信输入联系人时,要把联系人号码换成一个图片,但这个图片无法用固定的某张图,而是根据内容进行定制的,这更像一个view. 当然,如果你不是v ...

最新文章

  1. minor gc和Major GC,Full GC的触发条件
  2. php用户鉴权,app开发之鉴权 PHP版
  3. 发布开源库的踩坑经历:jitpack.io
  4. RabbitMQ 消息队列六种模式
  5. 解决iOS地图持续定位耗电问题
  6. 数据结构----顺序表与单链表(JAVA)
  7. lambda表达式浅析【C++学习笔记】
  8. python打印文件到字符串_请问Python打印字符串到文本文件
  9. 【论文写作】在线考试系统的设计原理如何写
  10. 【MFC学习笔记-作业7-小型画图软件】【】
  11. 浅谈扩展欧几里得算法
  12. ILSVRC-ImageNet历年竞赛冠军
  13. 基于Matlab的随机森林算法实现(附算法介绍及代码详解)
  14. 各大IT公司、软件公司员工等级(级别)及薪资
  15. 方差、标准差、均方根误差、平均绝对误差的总结
  16. 电脑的一些基本常识和简单操作
  17. JavaScript工具函数(一)
  18. JAVA就业培训班一周有感杂记
  19. 弘辽科技:拼多多类目选错了有什么影响?怎么办?
  20. 古诗词 中文 分词 自动化

热门文章

  1. 北林oj-算法设计与分析-Tom palindrome number
  2. 使用redis做缓存,遇到Could not return the resource to the pool异常怎么办呐!
  3. oracle 7 客户端,windows 7环境下配置oracle 11g 客户端
  4. Web中树形数据(层级关系数据)的实现—以行政区树为例
  5. 手机短号(hdu2081)
  6. struts2.1笔记02:servlet简介
  7. windbg学习----r?
  8. ubuntu通过vmware与访问宿主的文件
  9. sql cast()函数
  10. Visual Studio 2005 Web Application Projects