本文实例为大家分享了Android匹配关键字标红的具体代码,供大家参考,具体内容如下

1. 单关键字匹配

若只需匹配 搜索内容  可以写的简单一些,代码如下:

if (name != null && name.contains(mKeyWord)) {    int index = name.indexOf(mKeyWord);    int len = mKeyWord.length();    Spanned temp = Html.fromHtml(name.substring(0, index)      + ""      + name.substring(index, index + len) + ""      + name.substring(index + len, name.length()));     holder.tv_name.setText(temp);   } else {    holder.tv_name.setText(name); } 

上面的name是你要显示整个item内容,  mKeyWord 是搜索的关键字  holder.tv_name 是当前textview控件 

2.多关键字匹配

有的时候我们做搜索的时候 是需要将用户输入的关键字在服务端做拆分,拆分为多个关键字去搜索。那么服务端返回数据的时候关键字被拆分为多个。也就是返回的是一个关键字数组。

这种情况我们在客户端做  关键字匹配的时候就要写一个算法,将段落中的多个关键字全部匹配并且标出来。

代码如下:

adapter里面逻辑:

/**  name 是item显示内容 当前item显示字符串内容  keyList 是指存放 多个关键字的list集合 */ StringBuffer str = new StringBuffer(""); str = Utils.addChild(name, keyList, str); holder.contentTv.setText(Html.fromHtml(str.toString())); 
/**  * 多关键字查询表红,避免后面的关键字成为特殊的HTML语言代码  * @param str  检索结果  * @param inputs 关键字集合  * @param resStr 表红后的结果  */ public static StringBuffer addChild(String str,List inputs,StringBuffer resStr){  int index=str.length();//用来做为标识,判断关键字的下标  String next="";//保存str中最先找到的关键字  for (int i = inputs.size() -1 ; i>= 0;i--) {   String theNext=inputs.get(i);   int theIndex=str.indexOf(theNext);   if(theIndex==-1){//过滤掉无效关键字    inputs.remove(i);   }else if(theIndex"+str.substring(index,index+next.length())+"");   String str1=str.substring(index+next.length(),str.length());   addChild(str1,inputs,resStr);//剩余的字符串继续替换  }  return resStr; } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. android基础总结篇之九:Intent应用详解
  2. Android(安卓)SQLite 使用 query 查询特定行数据
  3. Android请求数据格式与Java后台需求格式不匹配HttpMediaTypeNotS
  4. Android(安卓)中部分文字高亮显示方法
  5. Android探索:全面分析Activity的生命周期&IntentFilter匹配规则
  6. 隐式Intent解析
  7. android 使用ContentProvider共享数据
  8. android之android.intent.category.DEFAULT的用途和使用
  9. 【Android】隐式调用Activity时匹配category需要注意的细节

随机推荐

  1. Android(安卓)自定义控件 按钮滚动选择
  2. what is already installed?
  3. Android(安卓)App应用底部导航栏实现的一
  4. Android之Button样式
  5. How to Install Ubuntu on Android!
  6. android TabHost 对象报错
  7. android判断一个Service是否存在
  8. Android(安卓)MediaMuxer混合音频和视频
  9. android Thread和Runnable的区别
  10. android 创建快捷方式