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 ...
随机推荐
- linux中mysql配置文件和jdk环境变量
mysql配置文件 [client]default-character-set = utf8mb4 [mysql]socket = /var/lib/mysql/mysql.sockdefault-c ...
- javascript之网页跑马灯
---恢复内容开始--- <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- 2018-2019-2 20165313 Exp3 免杀原理与实践
实践内容(3.5分) 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) 1.2 通过组合 ...
- 天融信防火墙NGFW4000,无法进入web管理和community属性查看
1.system config save //配置保存 2.system config reset //清除配置(恢复出厂设置) 3.pf service add name webui area a ...
- IDEA远程连接Hadoop
IDEA远程连接Hadoop Win 1.Hadoop配置 下载并配置到本地环境 HADOOP_HOME D:\Tools\hadoop-2.7.7\hadoop-2.7.7 HADOOP_PREFI ...
- C++——STL内存清除
1.vector元素的清除 看代码.在vector中添加若干元素,然后clear() #include<iostream> #include<list> #include< ...
- oracle错误汇总2
http://blog.itpub.net/30430420/viewspace-1799925/ ============================= 现象!!!!!!!!!!!!!!!!!S ...
- c# 程序只能运行一次(多次运行只能打开同一个程序)
转自:https://social.msdn.microsoft.com/Forums/zh-CN/6398fb10-ecc2-4c03-ab25-d03544f5fcc9/2291420309357 ...
- elasticsearch -- Logstash实现mysql同步数据到elasticsearch
配置 安装插件由于这里是从mysql同步数据到elasticsearch,所以需要安装jdbc的入插件和elasticsearch的出插件:logstash-input-jdbc.logstash-o ...
- vs2017 F5不会自动编译了
其实我的错误提示是:c# 不会命中断点 源代码与原始版本不同 我在网上搜索这个,发现让另存啦.格式化代码啦.批量重生成啦. 只有批量重生成好用,断点能打上,其他方法都不行. 可是每次都批量重生成太麻烦 ...