对于空菜单,我是否需要一个空的onCreateOptionsMenu?

时间:2015-11-26 11:34:58

标签: android

在我的应用程序中,我有一些没有菜单项的活动,使用以下覆盖:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.appbar_menu_empty, menu);
    return true;
}

这很好用。如果我删除覆盖,我会在Android 5.1上获得相同的效果,即没有图标的操作栏。

所以问题是:我可以放弃覆盖吗?

Activity.onCreateOptionsMenu的文档声明:

  

默认实现使用标准系统菜单项填充菜单。

这是什么意思?我是否需要预期Android会出现一些我没有明确添加的按钮?

3 个答案:

答案 0 :(得分:1)

如果您不想拥有菜单项,可以删除OncreateOptionsMenu()

如果要添加菜单项,请编辑资源/菜单目录中的menu.xml文件。

答案 1 :(得分:-1)

在此处查看一些示例代码,您需要在操作栏菜单中显示选项

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_act_add_recipe, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

<强> /res/menu/menu_act_add_recipe.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/action_add_image"
    android:icon="@drawable/ic_tab_add_image_white"
    android:orderInCategory="100"
    android:title="@string/action_preview"
    app:showAsAction="always" />
<item
    android:id="@+id/action_recipe_preview"
    android:icon="@drawable/ic_tab_check_white"
    android:orderInCategory="100"
    android:title="@string/action_preview"
    app:showAsAction="always" />

答案 2 :(得分:-1)

从文档中,方法在Activity类中定义如下

  

初始化Activity的标准选项菜单的内容。您   应将菜单项放入菜单中。

     

仅在选项菜单第一次调用时调用一次   显示。要在每次显示菜单时更新菜单,请参阅   onPrepareOptionsMenu(android.view.Menu)。

     

默认实现使用标准系统填充菜单   菜单项。这些放在android.view.Menu.CATEGORY_SYSTEM中   组,以便他们将与应用程序定义正确排序   菜单项。派生类应该总是调用基础   实施

     

您可以安全地抓住菜单(以及从中创建的任何项目)   根据需要对其进行修改,直到下一次   onCreateOptionsMenu()被调用。

     

当您向菜单添加项目时,您可以实施活动   onOptionsItemSelected(android.view.MenuItem)方法来处理它们   那里。

     

参数:       菜单用于放置项目的选项菜单。返回:       您必须返回true才能显示菜单;如果你返回false,它将不会显示。

public boolean onCreateOptionsMenu(Menu menu) {
    if (mParent != null) {
        return mParent.onCreateOptionsMenu(menu);
    }
    return true;
}

还要检查此SO线程onCreateOptionsMenu() calling super

在此处查看活动类的代码http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/app/Activity.java#Activity.onCreateOptionsMenu%28android.view.Menu%29