Toolbar结合SearchView的使用

在实际的业务开发中,我们通常会在顶部的导航栏加入搜索的功能,如微信顶部的导航栏,这时我们可以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)是当输入文本发生改变的时候回调。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值