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. 别乱提交代码了,看下大厂 Git 提交规范是怎么做的!
  2. 快速人脸验证--MobileFaceNets: Efficient CNNs for Accurate Real-time Face Verification on Mobile Devices
  3. reactjs基础知识:原生事件绑定
  4. linux fedora35指定某个固定的启动项作为默认的启动项
  5. mysql输出重定向_将MySQL输出内容写入(重定向到)文件
  6. ios 重复引用 静态库_iOS项目引用静态库文件.a
  7. 用私有构造器或枚举类型强化Singleton属性(3)
  8. linux 下ftp的上传与下载
  9. 地理探测器——Geodetector
  10. AD9833 实验总结
  11. WebRTC 的音频弱网对抗之 NACK
  12. 厦门大学计算机科学与工程学院,厦门大学
  13. 【JavaScript】用原生js实现幻灯片效果
  14. table.render 中 cols 属性 【【问题】】
  15. 2019南京大学计算机考研录取名单,2019南京大学计算机考研录取名单啥时出来
  16. UTF-8与unicode的故事(转自某位我没找到的大牛)
  17. 音视频入门系列-服务器篇(nginx-rtmp 的部署)
  18. 你值得安装的24个chrome插件!!!
  19. vivo手机解析包错误解决方式
  20. Linux源码安装apache

热门文章

  1. 移动互联网开发课程笔记
  2. 示范性微电子院校“抢人”,芯片赛道黄不了!
  3. 常见的块级元素、行内元素、行内块元素
  4. 数据库系统概论第十章课后习题(部分)
  5. 强烈推荐这款神器,一行命令将网页转PDF!
  6. mac下将所有字体嵌入pdf(PDF/A格式)最简单的方式
  7. 背阔肌(03):单臂哑铃划船
  8. 什么是cname域名?
  9. 2018年移动支付调研报告:扫码碾压NFC 单笔1000元以下占86%
  10. 【也许你们现在很相爱,但陪你到最后的也许不是你】