在我的应用程序中,我有一些没有菜单项的活动,使用以下覆盖:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.appbar_menu_empty, menu);
return true;
}
这很好用。如果我删除覆盖,我会在Android 5.1上获得相同的效果,即没有图标的操作栏。
所以问题是:我可以放弃覆盖吗?
Activity.onCreateOptionsMenu的文档声明:
默认实现使用标准系统菜单项填充菜单。
这是什么意思?我是否需要预期Android会出现一些我没有明确添加的按钮?
答案 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