搜索框(SearchView)用法
SearchView是Android原生的搜索框控件,它提供了一个用户界面,可以让用户在文本框内输入文字,并允许通过看监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索。
SearchView属性如下:
|
XML属性 |
相关方法 |
说明 |
|
Android:IconifiedByDefault(Boolean iconified) |
setIconifiedByDefault(boolean) |
设置该搜索框默认是否自动缩小为图标 |
|
android:imeOptions |
setImeOptions(int) |
设置输入法搜索选项字段,默认是搜索,可以是:下一页、发送、完成等 |
|
android:inputType |
setInputType(int) |
设置输入类型 |
|
android:maxWidth |
setMaxWidth(int) |
设置最大宽度 |
|
android:queryHint |
setQueryHint(CharSequence) |
设置查询提示字符串 |
使用SearchView时可使用如下常用方法。
setIconifiedByDefault(Boolean iconified):设置该搜索框默认是否自动缩小为图标。
setSubmitButtonEnabled(Boolean enabled):设置是否显示搜索按钮。
setQueryHint(CharSequence hint):设置搜索框内默认显示的提示文本。
setOnQueryTextListener(SearchView.OnQueryTextListener listener):为该搜索框设置事件监听器。
如果为SearchView增加一个配套的ListView,则可以为SearchView增加自动完成功能。下面实例示范如何使用SearchView。
布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--定义一个SearchView-->
<SearchView
android:id="@+id/searchview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<!--为SearchView定义自动完成的ListView-->
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
主程序如下:
public class MainActivity extends AppCompatActivity {
private String[] mStrings = new String[]{"说好不哭", "等你下课", "不爱我就拉到", "123456"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView listView = findViewById(R.id.listview);
listView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, mStrings));
//设置ListView启用过滤
listView.setTextFilterEnabled(true);
SearchView searchView = findViewById(R.id.searchview);
//设置该SearchView默认是否自动缩小为图标
searchView.setIconifiedByDefault(false);
//设置该SearchView显示搜索按钮
searchView.setSubmitButtonEnabled(true);
searchView.setQueryHint("查找");
//为该SearchView组件设置事件监听器
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
//单机搜索按钮时激发该方法
@Override
public boolean onQueryTextSubmit(String query) {
//实际应用中应该在该方法内执行实际查询,此处仅使用Toast显示用户输入的查询内容
Toast.makeText(MainActivity.this, "你的选择是:" + query,
Toast.LENGTH_SHORT).show();
return false;
}
//用户输入字符时激发该方法
@Override
public boolean onQueryTextChange(String newText) {
//如果newText不是长度为0的字符串
if (TextUtils.isEmpty(newText)) {
//清除ListView的过滤
listView.clearTextFilter();
} else {
//使用用户输入的内容对ListView的列表项进行过滤
listView.setFilterText(newText);
}
return true;
}
});
}
}
本例中定义了一个ListView组件用于为SearchView组件显示自动完成列表。
运行结果如下:

搜索框(SearchView)用法的更多相关文章
- Android的搜索框SearchView的用法-android学习之旅(三十九)
SearchView简介 SearchView是搜索框组件,他可以让用户搜索文字,然后显示.' 代码示例 这个示例加了衣蛾ListView用于为SearchView增加自动补全的功能. package ...
- 详细解读Android中的搜索框—— SearchView
以前总是自己写的 今天看看别人做的 本篇讲的是如何用searchView实现搜索框,其实原理和之前的没啥差别,也算是个复习吧. 一.Manifest.xml 这里我用一个activity进行信息的输入 ...
- 搜索框(SearchView)的功能与用法
SearchView是搜索框组件,它可以让用户在文本框内输入汉字,并允许通过监听器监控用户输入,当用户用户输入完成后提交搜索按钮时,也通过监听器执行实际的搜索. 使用SearchView时可以使用如下 ...
- Android零基础入门第62节:搜索框组件SearchView
原文:Android零基础入门第62节:搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当 ...
- Android自定义View——自定义搜索框(SearchView)
Android自定义View——自定义搜索框(SearchView) http://www.apkbus.com/android-142064-1-1.html
- 详细解读Android中的搜索框(三)—— SearchView
本篇讲的是如何用searchView实现搜索框,其实原理和之前的没啥差别,也算是个复习吧. 一.Manifest.xml 这里我用一个activity进行信息的输入和展示,配置方式还是老样子,写一个输 ...
- (转)Android SearchView 搜索框
如果对这个效果感觉不错, 请往下看. 背景: 天气预报app, 本地数据库存储70个大中城市的基本信息, 根据用户输入的或通过搜索框选取的城市, 点击查询按钮后, 异步请求国家气象局数据, 得到返回的 ...
- 【Android自己定义View实战】之自己定义超简单SearchView搜索框
[Android自己定义View实战]之自己定义超简单SearchView搜索框 这篇文章是对之前文章的翻新,至于为什么我要又一次改动这篇文章?原因例如以下 1.有人举报我抄袭,原文链接:http:/ ...
- 用jsonp实现搜索框功能
用jsonp实现搜索框功能 前面的话: 在上周本来想发一篇模仿必应搜索的界面.但是在准备写文章之前突然想到前面学习了ajax技术,在这里我也让我的页面有一种不需要手动刷新就能获取到数据.但是发现用前面 ...
随机推荐
- Python基础库之jieba库的使用(第三方中文词汇函数库)
各位学python的朋友,是否也曾遇到过这样的问题,举个例子如下: “I am proud of my motherland” 如果我们需要提取中间的单词要走如何做? 自然是调用string中的spl ...
- MySQL学习(四)深入理解乐观锁与悲观锁
转载自:http://www.hollischuang.com/archives/934 在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据 ...
- Podman 使用指南
原文链接:Podman 使用指南 Podman 原来是 CRI-O 项目的一部分,后来被分离成一个单独的项目叫 libpod.Podman 的使用体验和 Docker 类似,不同的是 Podman 没 ...
- 非阻塞IO模型
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> # ...
- spring boot 中通过CORS实现跨域
一.跨域问题出现的原因 出现跨域问题的原因是同源策略. 同源策略 主要是三同:同协议.同域名.同端口, 同源策略目的 保证用户信息安全,防止恶意网站窃取数据.同源策略是必须的,否则cookie可以共享 ...
- httprunner-1-linux下搭建hrun(上)
前言 相信不少小伙伴对开源项目 httprunner 都很感兴趣,我们来看下它的有哪些特点吧: 项目管理:新增项目.列表展示及相关操作,支持用例批量上传(标准化的HttpRunner json和yam ...
- 玩转PubSubClient MQTT库
1.前言 在ESP8266学习系列中,博主一直使用HTTP协议.HTTP连接属于短连接,而在物联网应用中,广泛应用的却是MQTT协议.所以,本篇我们将学习Arduino平台上的MQTT实现库 ...
- react中使用redux简易案例讲解
为什么我想要使用redux? 前段时间初步上手了react,最近在使用react的过程中发现对于组件之间通信的需求比较迫切,尤其是在axios异步请求后端数据的时候,这样的需求是特别强烈的!举个例子: ...
- 设计模式(十)Strategy模式
Strategy模式,就是用来整体地替换算法,可以轻松地以不同的算法解决同一个问题. 还是根据一个示例程序来理解这种设计模式吧.先看一下示例程序的类图. 然后看示例程序代码. package bigj ...
- Golang的安装和编译
一.下载安装(Ubuntu16.04) 1.下载地址:https://golang.google.cn/dl/ 2.下载Linux版本的安装包go1.10.3.linux-amd64.tar.gz并复 ...