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)用法的更多相关文章

  1. Android的搜索框SearchView的用法-android学习之旅(三十九)

    SearchView简介 SearchView是搜索框组件,他可以让用户搜索文字,然后显示.' 代码示例 这个示例加了衣蛾ListView用于为SearchView增加自动补全的功能. package ...

  2. 详细解读Android中的搜索框—— SearchView

    以前总是自己写的 今天看看别人做的 本篇讲的是如何用searchView实现搜索框,其实原理和之前的没啥差别,也算是个复习吧. 一.Manifest.xml 这里我用一个activity进行信息的输入 ...

  3. 搜索框(SearchView)的功能与用法

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

  4. Android零基础入门第62节:搜索框组件SearchView

    原文:Android零基础入门第62节:搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当 ...

  5. Android自定义View——自定义搜索框(SearchView)

    Android自定义View——自定义搜索框(SearchView) http://www.apkbus.com/android-142064-1-1.html

  6. 详细解读Android中的搜索框(三)—— SearchView

    本篇讲的是如何用searchView实现搜索框,其实原理和之前的没啥差别,也算是个复习吧. 一.Manifest.xml 这里我用一个activity进行信息的输入和展示,配置方式还是老样子,写一个输 ...

  7. (转)Android SearchView 搜索框

    如果对这个效果感觉不错, 请往下看. 背景: 天气预报app, 本地数据库存储70个大中城市的基本信息, 根据用户输入的或通过搜索框选取的城市, 点击查询按钮后, 异步请求国家气象局数据, 得到返回的 ...

  8. 【Android自己定义View实战】之自己定义超简单SearchView搜索框

    [Android自己定义View实战]之自己定义超简单SearchView搜索框 这篇文章是对之前文章的翻新,至于为什么我要又一次改动这篇文章?原因例如以下 1.有人举报我抄袭,原文链接:http:/ ...

  9. 用jsonp实现搜索框功能

    用jsonp实现搜索框功能 前面的话: 在上周本来想发一篇模仿必应搜索的界面.但是在准备写文章之前突然想到前面学习了ajax技术,在这里我也让我的页面有一种不需要手动刷新就能获取到数据.但是发现用前面 ...

随机推荐

  1. MIPI CSI2-TX接口基于FPGA实现

    MIPI CSI2-TX用途: 跟海思的3559A芯片进行图像数据传输: MIPI CSI2-TX接口特性: xilinx 7系列芯片最大支持1.25Gbps: 最大支持lanes数量为4: 支持的图 ...

  2. vodevs3031 最富有的人

    在你的面前有n堆金子,你只能取走其中的两堆,且总价值为这两堆金子的xor值,你想成为最富有的人,你就要有所选择. 输入描述 Input Description 第一行包含两个正整数n,表示有n堆金子. ...

  3. SSH服务协议

    1.SSH介绍: SSH 是Secure Shell Protocol 的简写,由IETF网络小组(Network Working Group)制定:在进行数据传输之前,SSH先对联机数据包通过加密技 ...

  4. Neo4j:图数据库GraphDB(四)Python中的操作

    本文总结下Python中如何操作Neo4j数据库,用到py2neo包,Pip install 一下. 1 连接neo4j数据库:跟其它数据库一样,操作前必须输入用户名和密码及地址连接一下. from ...

  5. java架构之路-(Redis专题)SpringBoot连接Redis超简单

    上次我们搭建了Redis的主从架构,哨兵架构以及我们的集群架构,但是我们一直还未投入到实战中去,这次我们用jedis和springboot两种方式来操作一下我们的redis 主从架构 如何配置我上次已 ...

  6. 【RabbitMQ 实战指南】一 RabbitMQ 开发

    1.RabbitMQ 安装 RabbitMQ 的安装可以参考官方文档:https://www.rabbitmq.com/download.html 2.管理页面 rabbitmq-management ...

  7. 在已有 Windows10 系统的基础上,安装 Ubuntu17.10 系统(新版 BIOS)

    1.第一步,下载Ubuntu系统镜像 2.第二步,制作启动U盘,使用UltralSO,步骤:打开文件——选择iso文件——启动——写入硬盘映像——选择U盘——写入 3.第三步,分区,在Windows徽 ...

  8. git jenkins SonarQube手动代码质检

    SonarQube代码质检:1.提交代码-->gitlab-->jenkins抓取-->sonarqube质量检测-->maven编译-->shell-->web集 ...

  9. Java学习笔记十二--集合(三)

    第一节课 返回值 方法名 作用 void add(index,elemnet) 在指定的索引处添加元素 object get(index) 返回指定索引处的元素 int indexOf(object) ...

  10. java编写基于netty的RPC框架

    一 简单概念 RPC:(Remote Procedure Call),远程调用过程,是通过网络调用远程计算机的进程中某个方法,从而获取到想要的数据,过程如同调用本地的方法一样. 阻塞IO:当阻塞I/O ...