首先声明,我写的这个案例没有做兼容3.0以下的版本
1.public class MainActivity extends Activity
2.在Manifeast中设置主题:android:theme="@android:style/Theme.Holo.Light"
3.
在Menu目录下的menu_mian.xml文件中编写:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<!--Menu目录下就是用来展示菜单-->
<item
android:id="@+id/action_search"
android:icon="@mipmap/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom"
android:actionViewClass="android.widget.SearchView"/>
</menu>
(这边的编写会出现一个问题,就是:
android:showAsAction="ifRoom"下会有红线报错,解决方法是:按住ALT+ENTER,选择Disable inspection选项,这样就不会报错了。
4.还有在MainActivity中必须有有anCreateOptionMenu(Menu menu)方法,否则菜单不会初始化。
/**
* 这个方法是创建一个菜单,即初始化菜单,这个方法必须有,如果没有,就不能把菜单初始化到ActionBar上了。
*
* @param menu
* @return
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
//在初始化菜单的时候,创建SearchView对象
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
//设置搜索监听
//要想这边不发生空指针异常,就必须在<item/>加入android:actionViewClass="android.widget.SearchView"这个属性(菜单条目中配置)
//android通过这个属性去加载SearchView,然后赋值给searchView。
searchView.setOnQueryTextListener(this);
return true;
}
5.最后效果: