zoukankan      html  css  js  c++  java
  • 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();
    
        }
  • 相关阅读:
    省选模拟17 题解
    省选模拟16 题解
    省选模拟15 题解
    省选模拟14 题解
    省选模拟13 题解
    省选模拟12 题解
    图论专项测试
    数学专题测试4
    省选模拟11 题解
    爬虫框架:scrapy
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/10530843.html
Copyright © 2011-2022 走看看