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

使用SearchView时可以使用如下常用方法。

setIconifiedByDefault(boolean iconified):设置该搜索框默认是否自动缩小为图标。

setSubmitButtonEnabled(boolean enabled):设置是否显示搜索按钮。

setQueryHint(CharSequence hint):设置搜索框内默认显示的提示文本。

setOnQueryTextListener(SearchView.OnQueryTextListener listener):为该搜索框设置事件监听器。

如果为SearchView增加一个配套的ListView,则可以为SearchView增加自动完成的功能。如下实例示范了SearchView的功能与用法。

实例:搜索

该实例的界面布局文件中定义了一个SearchView和ListView,其中ListView用于为SearchView显示自动补齐列表。界面布局文件如下。

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

/>

上面的布局文件中定义了一个SearchView组件,并为该SearchView组件定义了一个ListView组件,该ListView组件用于为SearchView组件显示自动完成列表。

下面是该实例对应的Activity代码。

该Activity对应的后台代码文件如下:

packageorg.crazyit.helloworld;importandroid.os.Bundle;importandroid.app.Activity;importandroid.text.TextUtils;importandroid.view.Menu;import android.widget.*;public class SearchViewTest extends Activity implementsSearchView.OnQueryTextListener {privateSearchView sv;privateListView lv;//自动完成的列表

private final String[] mStrings={"aaaaaa","bbbbbb","cccccc"};

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.search_view_test);

lv=(ListView)findViewById(R.id.lv);

lv.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,mStrings));

lv.setTextFilterEnabled(true);

sv=(SearchView)findViewById(R.id.sv);//设置该SearchView默认是否自动缩小为图标

sv.setIconifiedByDefault(false);//为该SearchView组件设置事件监听器

sv.setOnQueryTextListener(this);//设置该SearchView显示搜索按钮

sv.setSubmitButtonEnabled(true);//设置该SearchView内默认显示的提示文本

sv.setQueryHint("查找");

}

@Overridepublic booleanonCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.search_view_test, menu);return true;

}//用户输入字符时激发该方法

@Overridepublic booleanonQueryTextChange(String newText) {//TODO Auto-generated method stub

if(TextUtils.isEmpty(newText))

{//清楚ListView的过滤

lv.clearTextFilter();

}else{//使用用户输入的内容对ListView的列表项进行过滤

lv.setFilterText(newText);

}return true;

}//单击搜索按钮时激发该方法

@Overridepublic booleanonQueryTextSubmit(String query) {//TODO Auto-generated method stub//实际应用中应该在该方法内执行实际查询//此处仅使用Toast显示用户输入的查询内容

Toast.makeText(this, "您选择的是:"+query, Toast.LENGTH_SHORT).show();return true;

}

}

上面的程序中粗体字代码就是控制SearchView的关键代码,第一段粗体字代码我iSearchView设置了事件监听器,并为该SearchView启用了搜索按钮。接下来程序重写了onQueryTextChange()、onQueryTextSubmit()两个方法,这两个方法用于为SearchView的事件提供响应。

运行上面的程序,将看到如下效果:

java searchview_搜索框(SearchView)的功能与用法相关推荐

  1. Android中导航栏之搜索框SearchView

    Toolbar系列文章导航 Android中导航栏之Toolbar的使用 Android中导航栏之溢出菜单OverflowMenu Android中导航栏之搜索框SearchView Android中 ...

  2. java ajax搜索框提示,Javaweb-案例练习-2-给搜索框添加提示

    Javaweb-案例练习-2-给搜索框添加提示 凯哥java 凯哥java 给搜索框添加搜索提示功能 这篇来利用Ajax做一个给搜索框添加搜索提示的功能,这个我们在百度首页,搜索框随便输入一个字符,就 ...

  3. 搜索框(SearchView)详解

    搜索框(SearchView)详解 ONE Goal, ONE Passion ! 整理一下一些系统常用的小组件.先说说搜索框吧. SearchView是 搜索框组件,它可以让用户在文本框内输入文字, ...

  4. Ajax实现百度搜索框自动提示功能

    Ajax实现百度搜索框自动提示功能 当你在搜索框内写入关键字时下拉框会匹配和你输入的关键字相匹配的信息 文章目录 Ajax实现百度搜索框自动提示功能 一.实现效果 二.代码实现 1.前端页面 2.后端 ...

  5. Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法

    Android学习笔记 疯狂Android讲义 文章目录 Android学习笔记 疯狂Android讲义 第2章 Android 应用的界面编程 2.5 第4组 UI组件:AdapterView及其子 ...

  6. [Android]搜索框SearchView

    SearchView的介绍 SearchView提供了用户界面,并且可以通过监听查询内容来帮助实现搜索查询功能的小组件. SearchView的属性 XML 属性 android:iconifiedB ...

  7. java searchview_android搜索Android searchView和listview实现搜索

    每日一贴,今天的内容关键字为android搜索 searchView是一个为用户提供输入搜索查询和提交请求给搜索提供者的用户界面部件,显示查询提议或结果列表!本篇介绍一下将searchView加入到自 ...

  8. 实现百度搜索框提示语功能

    利用百度jsonp接口实现搜索提示语. jsonp.js封装 function jsonp(url, options) {// 创建script标签var $script = document.cre ...

  9. js实现搜索框跳转功能

    毕设篇:搜索框的逻辑实现 功能说明 实现搜索框的响应跳转功能,符合匹配条件跳转对应页面,不符合弹出alert提示框或跳转404页面 案例实现源码           提取码:love 效果展示  代码 ...

最新文章

  1. mybatis if标签比较字符串
  2. bash: /etc/apt/sources.list: 权限不够的解决办法
  3. STM32单片机工作日记
  4. Java 多态之“绑定”
  5. 同一个网络中为什么有些计算机可以连接共享打印机,有些需要输入密码,安装局域网共享打印机时,要求输入用户和密码,但对方并没有设置,为什么?谢谢!!...
  6. 初识docker,弄清镜像和容器
  7. git删除远程分支文件,不改变本地文件
  8. Mysql中SQL语句不使用索引的情况
  9. python 姓名用*替换_学会用python截取你的姓名
  10. linux caffe ssd安装错误,ubuntu16.04安装caffe以及各种问题汇总
  11. 第6章 数据库索引优化
  12. System verilog随机系统函数$randomize使用方法
  13. 拯救普通人周报焦虑,一个自动化报表工具就能实现
  14. 股灾情形下搞了个满堂红,我也是醉了
  15. KingDZ 变菜鸟,每日一个C#小实例之---C#MessageBox小技巧
  16. 性能可靠服务器虚拟化,服务器虚拟化分析
  17. Word,PDF,PPT,TXT之间的转换方法(
  18. journalctl -xe
  19. 如何html设置下载的字体呢?
  20. 如何查看自己的qq邮箱服务器地址,怎么看自己设置的qq邮箱帐号

热门文章

  1. NLP中的Perplexity是什么?
  2. 比尔·盖茨1978年写的古老程序曝光:IT人膜拜
  3. MySQL入门教程系列-1.1 数据库基础
  4. 什么是hard code
  5. 【牛客】网易2018实习生招聘笔试题——数据分析师实习生解析
  6. squish自动化测试_Squish GUI测试自动化工具达到4.0
  7. 星河案例ㅣ中国电信 X 冲量在线:基于智算中心的隐私计算应用实践
  8. 百花齐放的家居行业联盟,三翼鸟率先撬动三个赛点
  9. html隐藏表单域,HTML----表单中隐藏域小结
  10. 初窥Linux神秘面纱(叁):基本指令讲解(下)及疑难解惑(精)