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. NoUniqueBeanDefinitionException常见异常!!

    Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of ...

  2. Java并发编程总结(一)Syncronized解析

    Syncronized解析 作用: )确保线程互斥的访问同步代码 )保证共享变量的修改能够及时可见 )有效解决重排序问题. 用法: )修饰普通方法(锁是当前实例对象) )修饰静态方法(锁是当前对象的C ...

  3. 使用Line Pos Info 和 Modern C++ 改进打印日志记录

    使用Line Pos Info 和 Modern C++ 改进打印日志记录 使用跟踪值:不管自己是多么的精通,可能仍然使用调试的主要方法之一 printf , TRaCE, outputDebugSt ...

  4. Vue中的循环以及修改差值表达式

    0828自我总结 一.Vue中的循环 v-for 常见的4总情况 #第一种 <div v-for="item in items"></div> #第二种 & ...

  5. netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk

    PoolArena实现了用于高效分配和释放内存,并尽可能减少内存碎片的内存池,这个内存管理实现使用PageRun/PoolSubpage算法.分析代码之前,先熟悉一些重要的概念: page: 页,一个 ...

  6. PHP pa和ma

    <?php class Mouse { private $color; public $sex; public function __construct($role){ switch($role ...

  7. < 配置jupyer notebook遇到的问题 - 500 : Internal Server Error >

    < anaconda配置jupyer notebook遇到的问题 - 500 : Internal Server Error > 问题描述: 我的jupyer notebook是在anac ...

  8. OptimalSolution(2)--二叉树问题(2)BST、BBT、BSBT

    一.判断二叉树是否为平衡二叉树(时间复杂度O(N)) 平衡二叉树就是:要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过1. 解法:整个过程为二叉树的后序遍历.对任何一个节点node来说, ...

  9. unity5.6.1 videoPlayer

    unity5.6开始增加了videoPlayer,使得视频播放相对比较简单,项目需求进行了一下研究应用,也遇到很多坑,Google 百度一下发现确实有这些问题,一些简单问题如下: 1)播放无声音 2) ...

  10. Spring IoC的概念

    Spring IoC的基础知识 Spring 框架可以说是Java世界中最成功的框架,它的成功来自于理念,而不是技术,它最核心的理念是IoC(控制反转)和AOP(面向切面编程),其中IoC是Sprin ...