为了账号安全,请及时绑定邮箱和手机立即绑定

ActionBar中添加搜索框( search )及遇到的空指针问题

标签:
Android

在这几天的开发学习中,看到一个需求,就是要在导航栏中添加搜索框,于是乎就各种查资料,学习以及使用.

导航栏有两种实现方式,一种是用ActionBar,另一种是用ToolBar.(我在这里是用的ActionBar)

添加的方法;

简单说一下 showAsAction的其他属性,如果设置成never的话,菜单栏上就有三个竖直的小白点菜单

alaways:一直显示在溢出菜单外

ifRoom:溢出菜单外如果有空间,就显示在溢出菜单外

never:一直显示在溢出菜单内

自己设置看下效果就立刻懂了

在activity中的代码如下

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

@Override

    public boolean onCreateOptionsMenu(Menu   menu) {

        getMenuInflater().inflate(R.menu.menu,   menu);

        // 获得menu中指定的菜单项

        MenuItem   item = menu.findItem(R.id.search);

        // 获得菜单项中的SearchView

        SearchView   searchView = (SearchView) item.getActionView();

        // 为searchView添加事件

        searchView.setOnQueryTextListener(new   SearchView.OnQueryTextListener() {

            @Override

            //   输入后点击回车改变文本 

            public   boolean onQueryTextSubmit(String query) {

                return   false;

            }

            @Override

            //   随着输入改变文本

            public   boolean onQueryTextChange(String newText) {

                return   false;

            }

        });

        return true;

    }

 

SearchView组件的其他常用方法如下:

 

①setIconifiedByDefault(boolean iconified) ===> 设置搜索框默认是否自动缩小为图标。

②setOnQueryTextListener(SearchView,OnQueryTextListener listener) ===> 为搜索框设置监听器

③setSubmitButtonEnabled(boolean enabled) ===> 设置是否显示搜索按钮

④setQueryHint(CharSequence hint) ===> 设置搜索框内的默认显示的提示文本

 

做到这一步,搜索框基本就出来.,谈一下笔者遇到的空指针问题

笔者在这边运行了三次,每次都是空指针,用了好几种方法都是能确定了空指针的变量,却不知道该怎么解决.

于是乎又找度娘寻答案去了,终于给我找到了.

原因就是在menu布局中不正确使用V7包

常规的写法;android:actionViewClass="android.support.v7.widget.SearchView"

正确的写法;app:actionViewClass="android.support.v7.widget.SearchView"

命名空间采用;xmlns:app="http://schemas.android.com/apk/res-auto"

这样问题就解决了!

原文链接:http://www.apkbus.com/blog-862846-62463.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消