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"?><LinearLayoutxmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!– 顶一个SearchView –><SearchViewandroid:id="@+id/sv"android:layout_width="wrap_content"android:layout_height="wrap_content" /><!– 为SearchView定义自动补齐的ListView–><ListViewandroid: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 implementsSearchView.OnQueryTextListener {private SearchView sv;private ListView lv;// 自动完成的列表private final String[] mStrings = { "aaaaa", "bbbbbb", "cccccc", "ddddddd" };@Overrideprotected 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("查找");}// 用户输入字符时激发该方法@Overridepublic 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;}// 单击搜索按钮时激发该方法@Overridepublic boolean onQueryTextSubmit(String query) {// 实际应用中应该在该方法内执行实际查询// 此处仅使用Toast显示用户输入的查询内容Toast.makeText(this, "您的选择是:" + query, Toast.LENGTH_SHORT).show();return false;}}

人情似纸张张薄,世事如棋局局新。

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

相关文章:

你感兴趣的文章:

标签云: