2019-03-18 14:56:48 1206浏览
今天扣丁学堂Android培训老师给大家分享一篇Android开发之搜索框SearchView用法,结合实例形式分析了Android搜索框SearchView的基本功能、用法及相关操作注意事项。效果:
private final String[] mStrings = {"我爱Java","安卓无敌","好好学习"}; final ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings); listView.setAdapter(adapter);
listView.setOnItemClickListener(new ListView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Object string = adapter.getItem(position); searchView.setQuery(string.toString(),true); } });
@Override public boolean onQueryTextChange(String newText) { //如果newText长度不为0 if (TextUtils.isEmpty(newText)){ listView.clearTextFilter(); }else{ listView.setFilterText(newText); //adapter.getFilter().filter(newText.toString());//替换成本句后消失黑框!!! } return true; }
public class MainActivity extends Activity { private SearchView searchView; private ListView listView; //定义自动完成的列表 private final String[] mStrings = {"我爱Java","安卓无敌","好好学习"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.lv); final ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings); listView.setAdapter(adapter); //为ListView启动过滤 listView.setTextFilterEnabled(true); searchView = (SearchView) findViewById(R.id.sv); //设置SearchView自动缩小为图标 searchView.setIconifiedByDefault(false);//设为true则搜索栏 缩小成俄日一个图标点击展开 //设置该SearchView显示搜索按钮 searchView.setSubmitButtonEnabled(true); //设置默认提示文字 searchView.setQueryHint("输入您想查找的内容"); //配置监听器 searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { //点击搜索按钮时触发 @Override public boolean onQueryTextSubmit(String query) { //此处添加查询开始后的具体时间和方法 Toast.makeText(MainActivity.this,"you choose:" + query,Toast.LENGTH_SHORT).show(); return false; } @Override public boolean onQueryTextChange(String newText) { //如果newText长度不为0 if (TextUtils.isEmpty(newText)){ listView.clearTextFilter(); }else{ listView.setFilterText(newText); // adapter.getFilter().filter(newText.toString());//替换成本句后消失黑框!!! } return true; } }); listView.setOnItemClickListener(new ListView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Object string = adapter.getItem(position); searchView.setQuery(string.toString(),true); } }); } }
<?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="match_parent" android:layout_height="wrap_content"/> <!--定义自动完成的ListView--> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout>
【关注微信公众号获取更多学习资料】