搜索框(SearchView)的功能与用法
SearchView是搜索框组件,它可以让用户在文本框内输入汉字,并允许通过监听器监控用户输入,当用户用户输入完成后提交搜索按钮时,也通过监听器执行实际的搜索。
使用SearchView时可以使用如下常用方法。
- setIconifiedByDefault(boolean iconified):设置该搜索框默认是否自动缩小为图标。
- setSubmitButtonEnabled(boolean enabled):设置是否显示搜索按钮。
- setQueryHint(CharSequence hint):设置搜索框内默认显示的提示文本。
- setOnQueryTextListener(SearchView.OnQueryTextListener listener):为该搜索框设置事件监听器。
如果为SearchView增加一个配套的ListView,则可以为SearchView增加自动完成的功能。如下实例示范了SearchView的功能与用法。
实例:搜索
该实例的界面布局文件中定义了一个SearchView和ListView,其中ListView用于为SearchView显示自动补齐列表。界面布局文件如下。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<!-- 定义一个SearchView -->
<SearchView android:id="@+id/sv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<!-- 为SearchView定义自动完成的ListView -->
<ListView android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
上面的布局文件中定义了一个SearchView组件,并为该SearchView组件定义了一个ListView组件,该ListView组件用于为SearchView组件显示自动完成列表。
下面是该实例对应的Activity代码。
该Activity对应的后台代码文件如下:
package org.crazyit.helloworld; import android.os.Bundle;
import android.app.Activity;
import android.text.TextUtils;
import android.view.Menu;
import android.widget.*; public class SearchViewTest extends Activity implements SearchView.OnQueryTextListener { private SearchView sv;
private ListView lv;
//自动完成的列表
private final String[] mStrings={"aaaaaa","bbbbbb","cccccc"}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_view_test);
lv=(ListView)findViewById(R.id.lv);
lv.setAdapter(new ArrayAdapter<String>(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("查找");
} @Override
public boolean onCreateOptionsMenu(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;
}
//用户输入字符时激发该方法
@Override
public boolean onQueryTextChange(String newText) {
// TODO Auto-generated method stub
if(TextUtils.isEmpty(newText))
{
//清楚ListView的过滤
lv.clearTextFilter();
}
else
{
//使用用户输入的内容对ListView的列表项进行过滤
lv.setFilterText(newText); }
return true;
}
//单击搜索按钮时激发该方法
@Override
public boolean onQueryTextSubmit(String query) {
// TODO Auto-generated method stub
//实际应用中应该在该方法内执行实际查询
//此处仅使用Toast显示用户输入的查询内容
Toast.makeText(this, "您选择的是:"+query, Toast.LENGTH_SHORT).show();
return true;
} }
上面的程序中粗体字代码就是控制SearchView的关键代码,第一段粗体字代码我iSearchView设置了事件监听器,并为该SearchView启用了搜索按钮。接下来程序重写了onQueryTextChange()、onQueryTextSubmit()两个方法,这两个方法用于为SearchView的事件提供响应。
运行上面的程序,将看到如下效果:

搜索框(SearchView)的功能与用法的更多相关文章
- Android的搜索框SearchView的用法-android学习之旅(三十九)
SearchView简介 SearchView是搜索框组件,他可以让用户搜索文字,然后显示.' 代码示例 这个示例加了衣蛾ListView用于为SearchView增加自动补全的功能. package ...
- 详细解读Android中的搜索框—— SearchView
以前总是自己写的 今天看看别人做的 本篇讲的是如何用searchView实现搜索框,其实原理和之前的没啥差别,也算是个复习吧. 一.Manifest.xml 这里我用一个activity进行信息的输入 ...
- input搜索框实时检索功能实现(超简单,核心原理请看思路即可)
问题:实现input搜索框实时检索的功能,类似哔哩哔哩首页搜索功能(壮哉我大b站!).公司要求,emmmm没办法,果然懒人是要被赶着走才会进步的说,诶嘿O(∩_∩)O. 解决方法: 1.参考资料:ht ...
- 微信小程序 —搜索框
wxSearch优雅的微信小程序搜索框 一.功能 支持自定义热门key 支持搜索历史 支持搜索建议 支持搜索历史(记录)缓存 二.使用 1.将wxSearch文件夹整个拷贝到根目录下 2.引入 // ...
- 搜索框(SearchView)用法
SearchView是Android原生的搜索框控件,它提供了一个用户界面,可以让用户在文本框内输入文字,并允许通过看监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索. S ...
- Android零基础入门第62节:搜索框组件SearchView
原文:Android零基础入门第62节:搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当 ...
- 用jsonp实现搜索框功能
用jsonp实现搜索框功能 前面的话: 在上周本来想发一篇模仿必应搜索的界面.但是在准备写文章之前突然想到前面学习了ajax技术,在这里我也让我的页面有一种不需要手动刷新就能获取到数据.但是发现用前面 ...
- 【Android自己定义View实战】之自己定义超简单SearchView搜索框
[Android自己定义View实战]之自己定义超简单SearchView搜索框 这篇文章是对之前文章的翻新,至于为什么我要又一次改动这篇文章?原因例如以下 1.有人举报我抄袭,原文链接:http:/ ...
- Jquery实现搜索框提示功能
博客的前某一篇文章中http://www.cnblogs.com/hEnius/p/2013-07-01.html写过一个用Ajax来实现一个文本框输入的提示功能.最近在一个管理项目的项目中,使用后发 ...
随机推荐
- bLock 回调 就是这么简单!
转载自:http://blog.csdn.net/mobanchengshuang/article/details/11751671 我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数 ...
- 字符串解析运用-将字符串分解为多个整数,求各整数之和(华为oj)
描述 输入内容是一个字符串,输出结果为一个字符串.要求在输入的字符串中识别出多个整数单元,并且对各个整数单元求和运算,最终输出一个字符串,输出的字符串内容是对各个整数单元求和的结果.两个整数单元之间以 ...
- Hadoop webHDFS设置和使用说明
1.配置 namenode的hdfs-site.xml是必须将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS.LISTFILESTATUS ...
- 原创:LoadTest系列之Local.testtings之Web Test
在录制脚本后,需要对脚本进行回放,而在Loal.testting的Web Test设置中,可以设置脚本运行的次数,以及是否考虑think time等,如下图所示: 1. 双击Solution Item ...
- php运行机制初探
对于这个结果我也很吃惊,但是事实就在眼前,没办法啊,那么到底为什么会有这样的效果呢,咱们继续一探究竟: *.php(php代码) -----Scanner(zend引擎逐行扫描变为zend可以识别的语 ...
- 在Servlet(或者Filter,或者Listener)中使用spring的IOC容器
web.xml中的加载顺序为:listener > filter > servlet > spring. 其中filter的执行顺序是filter-mapping在web.xml中出 ...
- js正则之零宽断言
我们学到的正则表达式匹配,都是有“宽度”的,使用 \w+. 匹配下面文本,会将 . 一同匹配: regular. expression. 如果不想匹配符号,只匹配一个位置,就要用到“零宽断言”(匹配宽 ...
- Java Restful框架:Jersey入门示例(官方例子)
本文主要介绍了Java Restful框架Jersey入门例子(来源于官方网站https://jersey.java.net/),废话不多说进入正题. 在Jersey官方示例中(https://jer ...
- form表单传递下拉框的Value和Text值,不适用Jquery传递
同时获取下拉框的Value和Text值的解决办法:添加一个<input type="text" >文本框,用户选中一项后就将该项的value值给他 然后接受页面获取该文 ...
- 微信小程序下拉刷新和上拉加载
小程序知识点二 1.上拉加载和下拉刷新 Wxml文件 <scroll-view scroll-top="{{scrollTop}}" scroll-y="true& ...