分享matcherSearchText方法,返回值是SpannableString,也就是经过我们经过变色处理的文字。主要使用matcher.find()方法找到所有匹配的关键字,按照惯例我们看下效果图

下面就是matcherSearchText方法啦

 /**     * 正则匹配 返回值是一个SpannableString 即经过变色处理的数据     */    private SpannableString matcherSearchText(int color, String text, String keyword) {        SpannableString spannableString = new SpannableString(text);        //条件 keyword        Pattern pattern = Pattern.compile(keyword);        //匹配        Matcher matcher = pattern.matcher(new SpannableString(text.toLowerCase()));        while (matcher.find()) {            int start = matcher.start();            int end = matcher.end();            //ForegroundColorSpan 需要new 不然也只能是部分变色            spannableString.setSpan(new ForegroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);        }        //返回变色处理的结果        return spannableString;    }
SpannableString string = matcherSearchText(ResourceUtils.getColor(R.color.TextPrimary), text, mKeyword);tv_search_suggest.setText(string);

好了,本篇文章就这样啦,存在不到位的地方还望指导,感谢~

更多相关文章

  1. Android结束整个应用程序的两个方法
  2. Android到底那个Acitivity启动(二)
  3. Android(安卓)MediaPlayer的生命周期
  4. Android(安卓)View重绘和更新: invalidate和requestLayout
  5. Android(安卓)Studio Gradle 更换阿里云镜像的方法
  6. EventBus源码解析-总结篇
  7. AIDL用法总结
  8. Android架构组件(3)LiveData框架
  9. Android之TabLayout使用和默认选中+移动(解决)

随机推荐

  1. 科普:QUIC协议原理分析
  2. 让互联网更快的协议,QUIC在腾讯的实践及性
  3. 佛系程序员的月薪五万指南
  4. 每日数亿次微信视频通话背后,靠什么技术支
  5. CSS中使用grid进行布局的应用
  6. PyCharm2021最新激活教程激活码(PyCharm 2
  7. Copy a homepage by Grid
  8. 闪存出现“位置不可用无法访问函数不正确
  9. 用 Python 制作音乐聚合下载器
  10. Go语言学习9-结构体类型