Toolbar结合SearchView的使用

来源:互联网 发布:程序员培训班排名 编辑:程序博客网 时间:2024/05/21 09:59

在实际的业务开发中,我们通常会在顶部的导航栏加入搜索的功能,如微信顶部的导航栏,这时我们可以Toolbar结合SearchView来使用

Toolbar的具体使用见:http://blog.csdn.net/sinat_35159441/article/details/76794117
使用步骤如下:

一:如何在Toolbar中假如SearchView

使用Toolbar的时候,我们经常要跟menu打交道,我们只要指定action按钮的某个属性就能将SearchView加入到Toolbar中,资源文件如下:

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">    <item        android:id="@+id/backUp"        android:title="Backup"        app:actionViewClass="android.support.v7.widget.SearchView"        app:showAsAction="always" /></menu>

在我们的item中加入了
app:actionViewClass=”android.support.v7.widget.SearchView” 这个属性,就能将该action 按钮变为SearchView

二:初始化SearchView,设置其样式

@Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.toolbar, menu);        MenuItem item = menu.findItem(R.id.backUp);        SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);        //设置搜索栏的默认提示        searchView.setQueryHint("请输入商品名称");        //默认刚进去就打开搜索栏        searchView.setIconified(false);        //设置输入文本的EditText        SearchView.SearchAutoComplete et = (SearchView.SearchAutoComplete) searchView.findViewById(R.id.search_src_text);         //设置搜索栏的默认提示,作用和setQueryHint相同        et.setHint("输入商品名或首字母");        //设置提示文本的颜色        et.setHintTextColor(Color.WHITE);        //设置输入文本的颜色        et.setTextColor(Color.WHITE);        //设置提交按钮是否可见        //searchView.setSubmitButtonEnabled(true);        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {            @Override            public boolean onQueryTextSubmit(String query) {                Toast.makeText(MainActivity.this, "您输入的文本为" + query, Toast.LENGTH_SHORT).show();                return false;            }            @Override            public boolean onQueryTextChange(String newText) {                return false;            }        });        return true;    }

MenuItem item = menu.findItem(R.id.backUp);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(item); 为得到SearchView的实例,为固定写法,没什么好说的。这里说一下searchView.setOnQueryTextListener方法。

该方法是输入文本的回调和提交时的回调, onQueryTextSubmit(String query)是当文本提交的时候的回调,这里我们弹出一条吐司,onQueryTextChange(String newText)是当输入文本发生改变的时候回调。

运行效果如下:
这里写图片描述

原创粉丝点击