搜索框(SearchView)详解

ONE Goal, ONE Passion !

整理一下一些系统常用的小组件.先说说搜索框吧.

  • SearchView是 搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监听用户输入,当用户输入完成后提交搜索时也可以执行实际的搜索.

第1步: xml文件中声明

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.windowtest1.SearchViewActivity"><SearchView
        android:id="@+id/sv"android:layout_width="match_parent"android:layout_height="wrap_content" />
<--可以为SearchView增加自动完成的功能 --><ListView
        android:id="@+id/lv"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /></LinearLayout>

第2步: 获得SearchView并做一些处理

public class SearchViewActivity extends Activity {private SearchView sv;private ListView lv;private String[] mStrings = {"123", "456", "789"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_search_view);lv = (ListView) findViewById(R.id.lv);lv.setAdapter(new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, mStrings));//设置ListView启动过滤lv.setTextFilterEnabled(true);sv = (SearchView) findViewById(R.id.sv);//设置sv默认是否自动缩小为图标sv.setIconifiedByDefault(false);//设置显示收索按钮sv.setSubmitButtonEnabled(true);//设置sv默认显示的提示文本sv.setQueryHint("查找");//为该sv设置监听sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {//用户点击输入时触发@Overridepublic boolean onQueryTextSubmit(String query) {System.out.println("选择的是---" + query);
// 一般实际应用中可在这里做逻辑处理return false;}// 用户输入时触发@Overridepublic boolean onQueryTextChange(String newText) {//如果newText不为0if (newText.isEmpty()) {//lv.clearTextFilter();} else {//使用用户输入内容对lv进行过滤lv.setFilterText(newText);}return false;}});}
}

需要注意的问题—– 为ListView填充数据时使用ArrayAdapter可行,但是如果使用BaseAdapter是不可以实现提示功能的(也就是listview没有作用了).所以还是不要使用BaseAdapter.

市面上见的搜索框比这复杂一些,如网易的新闻搜索,不能使用简单的listview去更改listview是否过滤.要这样实现

伪代码:

 1,使用EditView充当输入框,并监听输入内容.2,获得输入的内容后联网去查询应该提示给用户的信息.3.当用户点击某一条信息时,实际上点击的是lisetview中某个item.我们 获得这个item的内容,然后将它显示到EditView中.点击搜索 再去做逻辑处理即可.

要下班了,有时间再补充.实现起来应该是满简单的.

搜索框(SearchView)详解相关推荐

  1. 小米官网搜索框部分详解

    <!DOCTYPE html> <html>     <head>         <meta charset="utf-8" /> ...

  2. android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...

    Android ActionBar搜索功能用法详解 本文实例讲述了Android ActionBar搜索功能用法.分享给大家供大家参考,具体如下: 使用ActionBar SearchView时的注意 ...

  3. java搜索代码_Java实现搜索功能代码详解

    首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是get请求,并且是向当前页面发送get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...

  4. java 搜索_Java实现搜索功能代码详解

    首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是Get请求,并且是向当前页面发送Get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...

  5. php搜索表格,table表格内对某列内容进行搜索筛选步骤详解

    这次给大家带来table表格内对某列内容进行搜索筛选步骤详解,table表格内对某列内容进行搜索筛选的注意事项有哪些,下面就是实战案例,一起来看一下. 往往有些时候,我们把数据从数据库读取出来,显示到 ...

  6. ag 搜索工具参数详解

    ag 搜索工具参数详解 Ag 是类似ack, grep的工具,它来在文件中搜索相应关键字. 官方列出了几点选择它的理由: 它比ack还要快 (和grep不在一个数量级上) 它会忽略.gitignore ...

  7. 火山PC编辑框组件详解3

    上一篇文章地址:火山PC编辑框组件详解2 一.布局 就放两个编辑框 二.添加触发事件 ①设计区添加 ②代码区添加 三.触发 ①按下和放开某键 可以直接判断键码值,不知道的,可以输出看下,或参照最后一张 ...

  8. (20)目标检测算法之YOLOv5计算预选框、详解anchor计算

    目标检测算法之YOLOv5计算预选框.详解anchor计算 单节段目标检测算法中:预选框的设定直接影响最终的检测精度 众所周知,yolov5中采用自适应调整预选框anchor的大小,但万事开头难,配置 ...

  9. Linux如何全盘搜索MySQL文件_Linux上的文件搜索命令实例详解

    locate 基础了解 locate命令搜索的后台数据库路径:/var/lib/mlocate/mlocate.db ls -hl /var/lib/mlocate total 1.2M -rw-r- ...

最新文章

  1. case when 效率高不高_南京薄蜂窝纸板效率高
  2. ERP实施流程---计划部
  3. 30分钟从工作电脑入侵公司内网!Win11:更新强制要求有TPM2.0,知道为啥了吧?...
  4. 串行通信------字符串发送和十六进制发送
  5. mysql触发器 存储过程_mysql触发器和存储过程
  6. 单列索引和联合索引,有什么区别?
  7. Windows下搭建Eclipse+Android4.0开发环境
  8. Pictures Test
  9. Ubuntu下安装LAMP及phpmyadmin
  10. webpack 打包第三方库_webpack提取第三方库的正确姿势
  11. 用C++计算文件的MD5值
  12. Torts and Personal Injury
  13. 删除Windows10在语言栏出现“未知区域设置(qaa-latn)”
  14. 工业物联网创新方案亮相2018云栖大会
  15. 股票-每日复盘-5-24
  16. MySQL高可用方案MGR+consul组合测试
  17. VUE项目中安装和使用vant组件
  18. Fastjson1.2.47反序列化漏洞复现
  19. PC端页面在手机端完整显示
  20. nodejs学习_安装npm及cnpm(Windows)

热门文章

  1. C语言结构体typedef struct详解
  2. C语言getopt()函数
  3. OneHotEncoder独热编码
  4. 解决chrome下textarea控件滚动条不好使情况
  5. 跳台阶算法的三种实现方案(PHP)
  6. 教你5个大咖用的CMD命令,让人一看你就是个电脑高手
  7. Lua Single--Method 的对象实现方法(面向对象程序设计)
  8. 怎样屏蔽百度搜索侧边栏推荐以及热搜榜广告
  9. 获取VM中win10虚拟机映像
  10. OA系统请假,出差等流程审批解析