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

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

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

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

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

  3. input搜索框实时检索功能实现(超简单,核心原理请看思路即可)

    问题:实现input搜索框实时检索的功能,类似哔哩哔哩首页搜索功能(壮哉我大b站!).公司要求,emmmm没办法,果然懒人是要被赶着走才会进步的说,诶嘿O(∩_∩)O. 解决方法: 1.参考资料:ht ...

  4. 微信小程序 —搜索框

    wxSearch优雅的微信小程序搜索框 一.功能 支持自定义热门key 支持搜索历史 支持搜索建议 支持搜索历史(记录)缓存 二.使用 1.将wxSearch文件夹整个拷贝到根目录下 2.引入 // ...

  5. 搜索框(SearchView)用法

    SearchView是Android原生的搜索框控件,它提供了一个用户界面,可以让用户在文本框内输入文字,并允许通过看监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索. S ...

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

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

  7. 用jsonp实现搜索框功能

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

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

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

  9. Jquery实现搜索框提示功能

    博客的前某一篇文章中http://www.cnblogs.com/hEnius/p/2013-07-01.html写过一个用Ajax来实现一个文本框输入的提示功能.最近在一个管理项目的项目中,使用后发 ...

随机推荐

  1. C​# ​日​期​时​间

    //获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 20 ...

  2. 文本属性Attributes 初步

    转载自:http://www.cnblogs.com/qingche/p/3574995.html 1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSF ...

  3. Linux服务器软件安装备忘

    1.Centos安装Mysql --安装 yum install mysql-server 卸载 yum -e mysql-server --设置为开机启动 chkconfig mysqld on - ...

  4. Deep Learning (Python, C, C++, Java, Scala, Go)

    https://github.com/donaldlee2008/DeepLearning

  5. w3school之CSS学习笔记

    由于web自动化测试中,会用到比较复杂的定位方式:CSS定位,这种定位方式比较简洁,定位速度较快,所以继续学习前端的CSS知识,总结下学习笔记,以便后续查看.同时,也希望能帮助到大家. 学习网址:ht ...

  6. 轻量级别的Cache和反向代理软件---Varnish

    1.Varnish描述 1.1 Varnish的结构与特点 Varnish是一个轻量级别的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点: 基于内存进行缓存,重启后 ...

  7. [转] M2E插件maven-dependency-plugin问题

    转自 : http://blog.csdn.net/cskgnt/article/details/8530526 问题: maven-dependency-plugin (goals "co ...

  8. 使用eclipse和maven一步一步配置web项目

    http://www.blogjava.net/kevonz/archive/2012/07/08/382542.html

  9. (简单) LightOJ 1074 Extended Traffic,SPFA+负环。

    Description Dhaka city is getting crowded and noisy day by day. Certain roads always remain blocked ...

  10. 使用for循环输出杨辉三角-还是不懂得需要复习

    package com.chongrui.test; /* *使用for循环输出杨辉三角杨辉三角形由数字排列,可以把它看作一个数字表,其基本特征是两侧的数值均为1,其他位置的数值是其正上方的数值与左上 ...