刚好碰到一个要在ListView的Item中显示搜索的关键字高亮显示。已经解决,现在讲代码贴出来。

调用的时候传入2个参数即可,1.要显示的文本。2.需要高亮的关键字。

import java.util.regex.Matcher;import java.util.regex.Pattern;import android.graphics.Color;import android.text.Spannable;import android.text.SpannableStringBuilder;import android.text.style.CharacterStyle;import android.text.style.ForegroundColorSpan;public class TextUtilTools {/** * 关键字高亮显示 *  * @param target  需要高亮的关键字 * @param text     需要显示的文字 * @return spannable 处理完后的结果,记得不要toString(),否则没有效果 */public static SpannableStringBuilder highlight(String text, String target) {SpannableStringBuilder spannable = new SpannableStringBuilder(text);CharacterStyle span = null;Pattern p = Pattern.compile(target);Matcher m = p.matcher(text);while (m.find()) {span = new ForegroundColorSpan(Color.RED);// 需要重复!spannable.setSpan(span, m.start(), m.end(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}return spannable;}// 调用// SpannableStringBuilder textString = TextUtilTools.highlight(item.getItemName(), KnowledgeActivity.searchKey);// vHolder.tv_itemName_search.setText(textString);}



更多相关文章

  1. 关于Android加载图片时的OOM的一些解决方法和优化
  2. 【Android】Android中使用JNI调用底层C++代码
  3. 物联网温湿度显示控制项目(网页、Android双端显示&搭载linux平台
  4. Android(安卓)Intent机制实例详解(1)
  5. Android(安卓)开发初级入门:注册谷歌地图 API 密钥和显示谷歌地图
  6. Android(安卓)UI【Android(安卓)仿Iphone文件夹分裂效果】
  7. 调用Android自带日历功能
  8. [Android]如何做一个崩溃率少于千分之三噶应用app(7)-跨module交互
  9. Android系统下如何通过外设实现GPIO中断触发调用Android程序执行

随机推荐

  1. MySQL游标概念与用法详解
  2. MySQL存储过程概念、原理与常见用法详解
  3. 简单了解mysql方言dialect
  4. MySQL触发器概念、原理与用法详解
  5. MySQL中NULL对索引的影响深入讲解
  6. MySQL启动报错问题InnoDB:Unable to lock
  7. 记一次MySQL Slave库恢复实战记录
  8. MySQL8.0 DDL原子性特性及实现原理
  9. 在Windows环境下安装MySQL 的教程图解
  10. 简单了解mysql mycat 中间件