searchView的简单实现
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
在Android开发中,`SearchView`是一个非常常用的组件,它为用户提供了一个搜索界面,可以方便地在应用中进行内容检索。本篇文章将详细介绍如何在Android中实现`SearchView`的基本功能,并结合`ListView`展示搜索结果。我们将从以下几个方面进行讨论: 1. **SearchView介绍** `SearchView`是Android SDK中的一个视图组件,通常位于ActionBar或Toolbar上,用于提供用户输入查询字符串的界面。它可以与`AutoCompleteTextView`集成,提供自动补全建议,也可以连接到`Filterable`接口的实现,以过滤和显示搜索结果。 2. **添加SearchView到布局** 要在XML布局文件中添加`SearchView`,可以在`<menu>`标签内定义一个`<item>`,并设置其`android:actionViewClass`属性为`android.widget.SearchView`。例如: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/search" android:title="@string/search_title" android:icon="@android:drawable/ic_menu_search" app:showAsAction="always|collapseActionView" app:actionViewClass="android.widget.SearchView" /> </menu> ``` 3. **监听SearchView事件** 在Activity或Fragment中,我们需要监听`SearchView`的事件,如查询文本的变化、查询的提交等。这可以通过重写`onOptionsItemSelected(MenuItem item)`方法来实现: ```java @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.search) { SearchView searchView = (SearchView) item.getActionView(); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { // 用户点击搜索按钮时执行的代码 return false; } @Override public boolean onQueryTextChange(String newText) { // 查询文本改变时执行的代码 return false; } }); } return super.onOptionsItemSelected(item); } ``` 4. **实现Filterable接口** 为了过滤数据并显示在`ListView`中,你需要创建一个实现了`Filterable`接口的Adapter。`getFilter()`方法会返回一个`Filter`对象,该对象负责过滤数据并更新列表。例如: ```java public class MyAdapter extends ArrayAdapter<MyItem> implements Filterable { private List<MyItem> originalList; private List<MyItem> filteredList; // 构造函数和其它方法... @Override public Filter getFilter() { return new Filter() { @Override protected FilterResults performFiltering(CharSequence constraint) { // 根据约束条件过滤数据 FilterResults results = new FilterResults(); if (constraint != null && constraint.length() > 0) { List<MyItem> filtered = new ArrayList<>(); for (MyItem item : originalList) { if (item.getName().contains(constraint.toString())) { filtered.add(item); } } results.values = filtered; results.count = filtered.size(); } else { results.values = originalList; results.count = originalList.size(); } return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { filteredList = (List<MyItem>) results.values; notifyDataSetChanged(); } }; } } ``` 5. **更新ListView** 当查询文本发生变化时,调用`Adapter`的`getFilter()`方法过滤数据,然后更新`ListView`: ```java searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String newText) { adapter.getFilter().filter(newText); return false; } }); ``` 6. **优化用户体验** 为了提供更好的用户体验,可以考虑以下几点: - 在用户输入时即时显示搜索结果,而不仅仅是提交查询时。 - 提供自动补全功能,通过`ArrayAdapter`或`CursorAdapter`实现。 - 处理空查询,当用户清空搜索框时,恢复原始数据列表。 - 添加清除图标,允许用户快速清空搜索框。 总结,`SearchView`在Android应用中是必不可少的组件,它为用户提供了一种方便的方式来搜索应用内的数据。通过监听`SearchView`事件、实现`Filterable`接口并更新`ListView`,我们可以实现一个完整的搜索功能。在实际开发中,可以根据需求进一步定制和优化`SearchView`的行为。
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/TXT.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/TXT.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
- 1
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- 得按懂得按懂得2015-05-06代码比较简洁呀,参考还是可以参考一下的。
- xiongqian20112016-08-03代码比较简洁呀,参考还是可以参考一下的
- 薄荷加点糖20162016-07-28赞赞赞,大爱博主
- hheuii2017-09-20不错,值得学习~
![avatar](https://profile-avatar.csdnimg.cn/044389c885be4abcbc39b73120621d0a_shark0017.jpg!1)
- 粉丝: 14
- 资源: 98
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 低功耗轨到轨运算放大器设计:基于ADI ADA4505指标的优化与实现,低功耗轨到轨运算放大器设计:基于ADI ADA4505指标的优化与实现,模拟集成电路设计 低功耗轨到轨运算放大器(如果需要优化某
- 基于RLS与LMS算法的自适应滤波器:Matlab与C语言代码详解,参数可调以增强算法理解,RLS与LMS自适应滤波器算法解析与Matlab及C语言代码实现,参数灵活调整以促进算法理解,rls,lms
- STM32电机库开发板注释详实的foc电机控制进阶指南:龙贝格算法与弱磁控制解析,从入门到实践之路,STM32电机库开发板学习教程:从基础注释到进阶控制技巧,包括无传感器版本龙贝格观测与电机控制新手入
- 基于RRT算法的2D路径规划与避障程序:随机采样下的高效探索与实施方法 ,基于随机采样的RRT算法二维路径规划与避障MATLAB程序,RRT算法路径规划及避障程序2D RRT算法二维路径规划与避障的M
- 《大厂优选:两相交错TCM图腾柱变频控制PFC与全桥LLC源代码详解》,大厂优化的两相交错TCM图腾柱PFC与全桥LLC变频控制源代码解析:实现软开关的智能化电源管理技术,大厂量产的两相交错TCM图腾
- 基于超螺旋滑模观测器的永磁无刷直流电机矢量控制:高角度与转速估算精度无传感器控制策略,基于超螺旋滑模观测器的永磁无刷直流电机矢量控制:高精度无传感器角度与转速估算技术,基于超螺旋滑模观测器的永磁无刷直
- 基于神经网络与模糊控制算法的PID控制策略研究:Matlab Simulink建模仿真分析,神经网络与模糊控制:BP-PID与Matlab SImulink建模仿真研究,神经网络PID控制BP-PID
- ANSYS仿真分析中网格隐藏的技巧与策略,网格隐藏技术在ANSYS仿真分析中的应用研究,网格隐藏 ansys仿真分析 ,网格隐藏;ANSYS仿真分析,网格隐藏ANSYS仿真分析的秘密解析
- MATLAB Simulink风储联合调频与MPC模型预测控制:优化风电出力预测,提升系统一次调频效率,内部结构详解,Matlab Simulink风储联合调频与MPC模型预测控制在风电一次调频中的应
- 光伏电路深度解析:逆变器原理图、PCB板及元器明细与仿真分析全记录,光伏并网逆变器全解析:原理图、PCB、源码及元器件明细表大全,光伏并网逆变器资料,包含原理图,pcb,源码以及元器件明细表 如下:
- 幼儿园管理系统的全面解决方案:基于BS架构与多层框架开发,运用前端技术与后端功能模块,基于三层架构的幼儿园管理系统:智能化操作,全面守护幼儿成长环境,幼儿园管理系统 基于三层架构框架开发,采用 B S
- 基于光伏Boost升压与储能系统的微电网仿真模型研究:包含储能变流器PCS与三相并网逆变器技术 ,基于光伏Boost升压与储能系统的微电网仿真模型研究:含三相并网逆变器与储能变流器PCS技术探索,交流
- 基于PLC的MCGS三轴机械手控制系统设计与实现,基于PLC的MCGS三轴机械手控制系统设计与实现,mcgs基于PLC的三轴机械手控制系统设计 ,mcgs; PLC; 三轴机械手; 控制系统设计,基于
- 基于Comsol仿真在多孔介质中湿空气传热传质特性的研究,基于COMSOL仿真的湿空气传热传质在多孔介质中的研究,comsol仿真 湿空气 传热传质 多孔介质 ,comsol仿真; 湿空气
- 双枪直流桩充电解决方案:包含原理图、PCB设计、BOM清单及参考代码的大循环充电系统,双枪直流桩充电解决方案:包含原理图、PCB设计、BOM清单及参考代码的大循环充电系统,双枪直流桩充电桩方案 包含双
- 基于LSTM与BP算法的组合预测建模:多输入单输出预测的Matlab实现指南,基于LSTM与BP算法的组合预测建模:多输入单输出预测的MATLAB程序实现与效果评估,LSTM结合BP做多输入单输出的组
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)