Android中的搜索框(SearchView)的功能和用法

1、SearchView是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索。

2、SearchView组件的常用方法如下:

①setIconifiedByDefault(boolean iconified) ===> 设置搜索框默认是否自动缩小为图标。

②setOnQueryTextListener(SearchView,OnQueryTextListener listener) ===> 为搜索框设置监听器

③setSubmitButtonEnabled(boolean enabled) ===> 设置是否显示搜索按钮

④setQueryHint(CharSequence hint) ===> 设置搜索框内的默认显示的提示文本

3、为SearchView增加一个配套的ListView,则可以为其增加自动完成的功能,即ListView用于为SearchView显示自动补齐列表

4、具体实现代码如下:

<?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/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="0dp"
		android:layout_weight="1"/>
</LinearLayout>
package org.crazyit.ui;

import android.os.Bundle;
import android.text.TextUtils;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast;
import android.app.Activity;

public class SearchViewTest extends Activity implements
		SearchView.OnQueryTextListener {
	private SearchView sv;
	private ListView lv;
	// 自动完成的列表
	private final String[] mStrings = { "aaaaa", "bbbbbb", "cccccc", "ddddddd" };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		lv = (ListView) findViewById(R.id.lv);
		lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mStrings));
		lv.setTextFilterEnabled(true);//设置lv可以被过虑
		sv = (SearchView) findViewById(R.id.sv);
		// 设置该SearchView默认是否自动缩小为图标
		sv.setIconifiedByDefault(false);
		// 为该SearchView组件设置事件监听器
		sv.setOnQueryTextListener(this);
		// 设置该SearchView显示搜索按钮
		sv.setSubmitButtonEnabled(true);
		// 设置该SearchView内默认显示的提示文本
		sv.setQueryHint("查找");
	}

	// 用户输入字符时激发该方法
	@Override
	public boolean onQueryTextChange(String newText) {
		Toast.makeText(SearchViewTest.this, "textChange--->" + newText, 1).show();
		if (TextUtils.isEmpty(newText)) {
			// 清除ListView的过滤
			lv.clearTextFilter();
		} else {
			// 使用用户输入的内容对ListView的列表项进行过滤
			lv.setFilterText(newText);
		}
		return true;
	}

	// 单击搜索按钮时激发该方法
	@Override
	public boolean onQueryTextSubmit(String query) {
		// 实际应用中应该在该方法内执行实际查询
		// 此处仅使用Toast显示用户输入的查询内容
		Toast.makeText(this, "您的选择是:" + query, Toast.LENGTH_SHORT).show();
		return false;
	}
}
时间: 2024-10-07 06:30:25

Android中的搜索框(SearchView)的功能和用法的相关文章

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

以前总是自己写的 今天看看别人做的 本篇讲的是如何用searchView实现搜索框,其实原理和之前的没啥差别,也算是个复习吧. 一.Manifest.xml 这里我用一个activity进行信息的输入和展示,配置方式还是老样子,写一个输入框的配置文件,然后写定一个action <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.and

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

本篇讲的是如何用searchView实现搜索框,其实原理和之前的没啥差别,也算是个复习吧. 一.Manifest.xml 这里我用一个activity进行信息的输入和展示,配置方式还是老样子,写一个输入框的配置文件,然后写定一个action <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/a

详细解读Android中的搜索框(四)—— Searchable配置文件

<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="string resource" android:hint="string resource" android:searchMode=[&qu

Android通用的搜索框

之前项目总会遇到很多搜索框类的功能,虽然不是很复杂,不过每次都要去自己处理数据,并且去处理搜索框的变化,写起来也比较麻烦,今天来做一个比较简单的通用搜索栏. 先看下效果图: 没什么特别的,只是今天要做的就是简单的把搜索框的内容封装一下. 一.分析功能 先考虑一下,搜索框一般都是由一个搜索图标(一般都是一个放大镜),一个输入框和一个清除按钮组成.然后会通过监听输入框的变化去处理清除按钮的显示和隐藏并且去过滤相关的数据.最后去刷新适配器,显示过滤后的数据.基本上搜索框的功能都大同小异. 有了上边的分

iOS中UISearchBar(搜索框)使用总结

iOS中UISearchBar(搜索框)使用总结 初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar     UISearchBar * bar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)];     [self.view addSubview:bar]; @property(nonatomic)        UIBarStyle              ba

如何在WordPress菜单中添加搜索框?

如何在WordPress菜单中添加搜索框?且不需要不使用任何WordPress插件. 想要达到这种效果只需按照以下步骤相同. 如何在WordPress菜单中添加搜索框: WordPress菜单中添加搜索框 打开functions.php文件,并在文件末尾的代码片段下面复制粘贴并保存.以下代码将自动将搜索框添加到主菜单栏. /** * Add searchbox in menubar */ add_filter( 'wp_nav_menu_items','add_search_box', 10,

Android开发之DatePickerDialog与TimePickerDialog的功能和用法详解

DatePickerDialog与TimePickerDialog的功能比较简单,用法也很简单,只要下面两步即可. ?  通过new关键字创建DatePickerDialog.TimePickerDialog实例,调用它们的show()方法即可将日期选择对话框.时间选择对话框显示出来. ?  为DatePickerDialog.TimePickerDialog绑定监听器,这样可以保证用户通过DatePickerDialog.TimePickerDialog设置事件是触发监听器,从而通过监听器来获

Android学习笔记(29):搜索框SearchView

SearchView提供一个搜索框,可以监听用户输入,用户提交搜索时,也可以通过监听器执行实际行动. 常用XML属性和相关方法: XML属性 相关方法 说明 android:iconifiedByDefault setIconifiedByDefault(boolean) 设置搜索框是否自动缩小为图标 setSubmitButtonEnable(boolean) 设置是否显示搜索按钮 android:inputType setInputType(int) 设置输入文本格式 android:max

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

SearchView简介 SearchView是搜索框组件,他可以让用户搜索文字,然后显示.' 代码示例 这个示例加了衣蛾ListView用于为SearchView增加自动补全的功能. package peng.liu.test; import android.app.Activity; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; impor