选项菜单不从 xml 膨胀

Posted

技术标签:

【中文标题】选项菜单不从 xml 膨胀【英文标题】:Options Menu not Inflating from xml 【发布时间】:2012-07-08 22:25:13 【问题描述】:

我无法从 xml 扩展选项菜单。这是我的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
    // TODO Auto-generated method stub
    super.onCreateOptionsMenu(menu);

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
 

当我按下模拟器上的菜单按钮时它运行良好,但是当我在运行 ics 的实际设备上运行它时没有菜单栏。

【问题讨论】:

【参考方案1】:

菜单按钮已从运行 android 3.0 及更高版本的设备中移除,现在被视为“已弃用”。 a nice Blog-post 介绍了为什么、如何使用新的 ActionBar 以及如何保留对旧应用程序的旧版支持:

如果您的应用在没有专用菜单按钮的设备上运行,则 系统决定是否将动作溢出添加到导航 栏基于您在<uses-sdk> 中声明支持的 API 级别 显式元素。逻辑归结为:

如果您将minSdkVersiontargetSdkVersion 设置为11 或更高,系统将不会添加旧版溢出按钮。 否则系统会在 Android 3.0 或更高版本上运行时添加旧版溢出按钮。 唯一的例外是,如果您将minSdkVersion设置为10或更低,将targetSdkVersion设置为11、12或13,并且您不使用ActionBar, 运行您的应用程序时,系统将添加旧版溢出按钮 在搭载 Android 4.0 或更高版本的手机上。

如果您正在开始 Android 开发或正在创建新应用程序,请不要使用此类菜单,而应使用 ActionBar。

为了向后兼容,"Support Library" 中提供了帮助程序:

不支持 ActionBar。但是,在创建时 您的选项菜单,您可以声明应将哪些项目添加到 可用的操作栏(在 Android 3.0 或更高版本上)。

【讨论】:

以上是关于选项菜单不从 xml 膨胀的主要内容,如果未能解决你的问题,请参考以下文章

xml 为recyclerview项目添加选项菜单

阅读《Android 从入门到精通》(28)——使用 XML 的选项菜单

阅读《Android 从入门到精通》(28)——使用 XML 的选项菜单

如何在左侧的操作栏上充气菜单

xml 使用sql选项从db中提取数据的组件菜单项xml的示例

Android Studio 文件菜单中是不是有“另存为”选项?