Android Studio下ActionBar示例

首先声明,我写的这个案例没有做兼容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 Studio下ActionBar示例_第1张图片

  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.最后效果:

Android Studio下ActionBar示例_第2张图片


你可能感兴趣的:(Actionbar,androidstudio,ActionBar中菜单不显示)