Android 开发 实现文本搜索功能
核心逻辑方法:
/**
* 搜索item
* @param searchContent 需要搜索的文本内容
*/
public void searchItem(String searchContent){
this.mSearchContent = searchContent.trim();//去除空格
if(TextUtils.isEmpty(mSearchContent)||mSearchContent.length()==0){//如果搜索内容是空的就显示全部内容
this.mShowList.clear();
mShowList.addAll(mAllDataList);
notifyDataSetChanged();
return;
}
List<THealthDataListBase.StudentData> tempList = new ArrayList<>();//用于临时保存匹配完成的数据
THealthDataListBase.StudentData tempStudentData = null;//用于临时保存匹配完成的item数据
char[] searchContentCharArray = searchContent.toCharArray();
for (THealthDataListBase.StudentData studentData : mAllDataList){ //遍历全部学生名称
char[] studentNameCharArray = studentData.name.trim().toCharArray();//学生名称去除空格,并且转成数组
int count = 0;
for (int i=0;i<searchContentCharArray.length;i++){ //遍历搜索文字
for (char word :studentNameCharArray){ //遍历学生名称文字
if (word == searchContentCharArray[i]){ //判断一致的文字
count++;
}
} }
if (count == 0){ //如果匹配度是0就不添加
continue;
}
tempStudentData = new THealthDataListBase().new StudentData();
tempStudentData.name = studentData.name;
tempStudentData.studentId = studentData.studentId;
tempStudentData.morning = studentData.morning;
tempStudentData.noon = studentData.noon;
tempStudentData.setCount(count);
tempList.add(tempStudentData); }
if (tempList.isEmpty() && !mSearchContent.isEmpty()){
mShowList.clear();
notifyDataSetChanged();
return; }
Collections.sort(tempList);//排序
mShowList.clear();
mShowList.addAll(tempList);
notifyDataSetChanged(); }
Android 开发 实现文本搜索功能的更多相关文章
- Android开发:文本控件详解——TextView(一)基本属性
一.简单实例: 新建的Android项目初始自带的Hello World!其实就是一个TextView. 在activity_main.xml中可以新建TextView,从左侧组件里拖拽到右侧预览界面 ...
- Android开发:文本控件详解——TextView(二)文字跑马灯效果实现
一.需要使用的属性: 1.android:ellipsize 作用:若文字过长,控制该控件如何显示. 对于同样的文字“Android开发:文本控件详解——TextView(二)文字跑马灯效果实现”,不 ...
- Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能. 下面是一个效果图 ...
- Android开发技巧——Camera拍照功能
本篇是我对开发项目的拍照功能过程中,对Camera拍照使用的总结.由于camera2是在api level 21(5.0.1)才引入的,而Camera到6.0仍可使用,所以暂未考虑camera2. 文 ...
- Android开发常用的一些功能列表(转)
文章来源:http://www.cnblogs.com/netsql/archive/2013/03/02/2939828.html 1.软件自动更新下载,并提示 2.软件登录注册,以及状态保存 3. ...
- android开发之微信支付功能的实现
移动开发中,支付类的App越来越多,对于开发者来说也是不可少的,不可不会的:下面就来说一说支付开发的流程 1.申请你的AppID 请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该 ...
- Android开发:文本控件详解——EditText(一)基本属性
一.简单实例: EditText输入的文字样式部分的属性,基本都是和TextView中的属性一样. 除此之外,EditText还有自己独有的属性. 二.基本属性: hint 输入框显示的提示文本 ...
- android开发_文本按钮 与 输入框
1 TextView: 属性与值 android:text="文本" android:textSize="20sp" //sp为 ...
- Android开发:文本控件详解——RadioButton和CheckBox(一)基本属性
一.RadioButton和RadioGroup: RadioButton是单个的圆形单选框,而RadioGroup是可以容纳多个RadioButton存在的容器,因此RadioButton和Radi ...
随机推荐
- uWSGI+Django (中)
环境是ubuntu 14.0 python3 django 1.10 1:安装uwsgi sudo apt-get install libpcre3 libpcre3-dev sudo pip3 i ...
- FlappyBird开发帮助文档
FlappyBird开发帮助文档 项目需求 完成FlappyBird游戏. 功能说明: 游戏开始后,间歇性的点击鼠标,让小鸟向上飞,不会掉下来,并且要穿过柱子的空隙,不能碰到柱子,碰到就dead了,穿 ...
- rs232接口定义
- python 基础之自动类型转换和强制类型转换
一:自动类型转换 自动类型转换注意针对Number数据类型来说的 当2个不同类型的数据进行运算的时候,默认向更高精度转换 数据类型精度从低到高:bool int float complex #关于bo ...
- oracle报错 ORA-02290: 违反检查约束条件问题
场景: 使用plsql/developer 将原本要求非空的字段 改为可以为空 然后在插入数据的时候 报错改字段约束条件还起作用 解决方案: 首先查询该表的约束条件 select * from u ...
- 18.14 构建Linux根文件系统
18.14.1 Busybox1.7.0之init程序分析 1.读取配置文件 2.解析配置文件 3.执行用户程序(根据配置文件中指定的内容) 配置文件: 1.指定应用程序 2.何时执行 busybox ...
- Unity 3D中的阴影设置
在Unity 3D中,经常需要用到光照阴影,即Directional Light的Shadow,Shadow分为Hard Shadow和Soft Shadow.区别是Soft Shadow的阴影边缘比 ...
- 【环境部署】centos7安装mysql-5.7.19 group-replication
--mysql高可用官方文档: https://dev.mysql.com/doc/refman/5.7/en/group-replication.html mysql下载地址: https://ww ...
- Introduction to Parallel Computing
Copied From:https://computing.llnl.gov/tutorials/parallel_comp/ Author: Blaise Barney, Lawrence Live ...
- servlet下载文件
package myjava.cn; import java.io.FileInputStream; import java.io.IOException; import java.io.InputS ...