Android搜索框(SearchView)的功能和用法详解
SearchView是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索。
1、SearchView组件的常用方法如下:
①setIconifiedByDefault(booleaniconified)===>设置搜索框默认是否自动缩小为图标。
②setOnQueryTextListener(SearchView,OnQueryTextListenerlistener)===>为搜索框设置监听器
③setSubmitButtonEnabled(booleanenabled)===>设置是否显示搜索按钮
④setQueryHint(CharSequencehint)===>设置搜索框内的默认显示的提示文本
2、为SearchView增加一个配套的ListView,则可以为其增加自动完成的功能,即ListView用于为SearchView显示自动补齐列表
3、具体实现代码如下:
html
java
importandroid.os.Bundle;
importandroid.text.TextUtils;
importandroid.widget.ArrayAdapter;
importandroid.widget.ListView;
importandroid.widget.SearchView;
importandroid.widget.Toast;
importandroid.app.Activity;
publicclassSearchViewTestextendsActivityimplements
SearchView.OnQueryTextListener{
privateSearchViewsv;
privateListViewlv;
//自动完成的列表
privatefinalString[]mStrings={"aaaaa","bbbbbb","cccccc","ddddddd"};
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv=(ListView)findViewById(R.id.lv);
lv.setAdapter(newArrayAdapter(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
publicbooleanonQueryTextChange(StringnewText){
Toast.makeText(SearchViewTest.this,"textChange--->"+newText,1).show();
if(TextUtils.isEmpty(newText)){
//清除ListView的过滤
lv.clearTextFilter();
}else{
//使用用户输入的内容对ListView的列表项进行过滤
lv.setFilterText(newText);
}
returntrue;
}
//单击搜索按钮时激发该方法
@Override
publicbooleanonQueryTextSubmit(Stringquery){
//实际应用中应该在该方法内执行实际查询
//此处仅使用Toast显示用户输入的查询内容
Toast.makeText(this,"您的选择是:"+query,Toast.LENGTH_SHORT).show();
returnfalse;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。