首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >空菜单需要空onCreateOptionsMenu吗?

空菜单需要空onCreateOptionsMenu吗?
EN

Stack Overflow用户
提问于 2015-11-26 11:34:57
回答 3查看 809关注 0票数 1

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

代码语言:javascript
运行
复制
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.appbar_menu_empty, menu);
    return true;
}

这个很好用。如果我删除了覆盖,我在Android5.1上得到了同样的效果,即一个没有图标的操作栏。

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

Activity.onCreateOptionsMenu的文档声明:

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

那是什么意思?我是否需要预期Android会产生一些我没有显式添加的按钮呢?

EN

回答 3

Stack Overflow用户

发布于 2015-11-26 11:38:01

如果不想要菜单项,可以删除OncreateOptionsMenu()

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

票数 2
EN

Stack Overflow用户

发布于 2015-11-26 12:03:23

在docs中,方法在活动类中定义如下

初始化活动的标准选项菜单的内容。你应该把你的菜单项放在菜单上。 在第一次显示“选项”菜单时,只调用一次。若要每次显示菜单时更新该菜单,请参见onPrepareOptionsMenu(android.view.Menu)。 默认实现使用标准的系统菜单项填充菜单。它们被放置在android.view.Menu.CATEGORY_SYSTEM组中,这样它们将与应用程序定义的菜单项一起正确地排序。派生类应该始终调用到基本实现。 您可以安全地保留菜单(以及从中创建的任何项目),根据需要对其进行修改,直到下次调用onCreateOptionsMenu()为止。 当您向菜单中添加项目时,可以实现活动的onOptionsItemSelected(android.view.MenuItem)方法,以便在那里处理它们。 参数:选择放置项目的“选项”菜单。返回:要显示菜单,必须返回true;如果返回false,则不会显示。

代码语言:javascript
运行
复制
public boolean onCreateOptionsMenu(Menu menu) {
    if (mParent != null) {
        return mParent.onCreateOptionsMenu(menu);
    }
    return true;
}

还请检查这个线程,以便将onCreateOptionsMenu() calling super线程化

在这里检查活动类的代码,r1/android/app/Activity.java#Activity.onCreateOptionsMenu%28android.view.Menu%29

票数 0
EN

Stack Overflow用户

发布于 2015-11-26 11:42:36

请参阅这里的一些示例代码,其中需要在操作栏菜单中显示选项。

代码语言:javascript
运行
复制
@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

代码语言:javascript
运行
复制
<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" />

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33937629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档