ActionBar中添加搜索框( search )及遇到的空指针问题
2016-10-31 00:00
393 查看
在这几天的开发学习中,看到一个需求,就是要在导航栏中添加搜索框,于是乎就各种查资料,学习以及使用.
导航栏有两种实现方式,一种是用ActionBar,另一种是用ToolBar.(我在这里是用的ActionBar)
添加的方法;
在menu菜单下的代码如下
简单说一下 showAsAction的其他属性,如果设置成never的话,菜单栏上就有三个竖直的小白点菜单
alaways:一直显示在溢出菜单外
ifRoom:溢出菜单外如果有空间,就显示在溢出菜单外
never:一直显示在溢出菜单内
自己设置看下效果就立刻懂了
在Activity中的代码如下
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"
这样问题就解决了!
导航栏有两种实现方式,一种是用ActionBar,另一种是用ToolBar.(我在这里是用的ActionBar)
添加的方法;
在menu菜单下的代码如下
<?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/search" app:actionViewClass="android.support.v7.widget.SearchView" android:orderInCategory="100" android:icon="@drawable/actionbar_search_icon" android:title="search" android:visible="true" app:showAsAction="always"/> </menu>
简单说一下 showAsAction的其他属性,如果设置成never的话,菜单栏上就有三个竖直的小白点菜单
alaways:一直显示在溢出菜单外
ifRoom:溢出菜单外如果有空间,就显示在溢出菜单外
never:一直显示在溢出菜单内
自己设置看下效果就立刻懂了
在Activity中的代码如下
@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"
这样问题就解决了!
相关文章推荐
- ActionBar关于search搜索按钮的显示问题
- getActionBar() 返回空指针问题
- 在使用Myeclipse时遇到由于删除action而引发的空指针异常问题的解决方法
- 关于sps的添加用户遇到的问题
- Fedora 11 添加一块硬盘遇到的问题
- DataList中动态添加控件遇到的问题
- VC添加位图遇到的问题
- 我在用dotnet做一个项目的过程中,遇到了一个ListBox的问题:通过在一个ListBox中双击,把选中的项添加到另一个ListBox中
- WINCE5.0添加Alphablend组件时遇到的问题
- ADO.NET中使用SqlParameter添加参数时遇到的参数无效问题
- 配置重复提交的代码后遇到的空指针问题
- 初学J2ME遇到的问题——空指针问题
- 在sps中遇到“不能添加用户,用户名已经存在”的问题的解决方法
- 新手学习Struts2遇到的问题:There is no Action mapped for namespace / and action name . - [unknown location]
- Wcf、Windows Index Service、 Windows Search技术调查遇到的问题
- eVC编程遇到的各种问题之——各种指针的获取
- 今天遇到的一个函数指针的问题
- 使用Action创建一个JButton后,改变该按钮的名字可能会遇到意想不到的问题
- sharepoint 添加解决方案 遇到的问题
- 网络添加打印机遇到的问题总结