选项菜单不从 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 级别 显式元素。逻辑归结为:minSdkVersion
或targetSdkVersion
设置为11 或更高,系统将不会添加旧版溢出按钮。 否则系统会在 Android 3.0 或更高版本上运行时添加旧版溢出按钮。 唯一的例外是,如果您将minSdkVersion
设置为10或更低,将targetSdkVersion
设置为11、12或13,并且您不使用ActionBar, 运行您的应用程序时,系统将添加旧版溢出按钮 在搭载 Android 4.0 或更高版本的手机上。
如果您正在开始 Android 开发或正在创建新应用程序,请不要使用此类菜单,而应使用 ActionBar。
为了向后兼容,"Support Library" 中提供了帮助程序:
库不支持 ActionBar。但是,在创建时 您的选项菜单,您可以声明应将哪些项目添加到 可用的操作栏(在 Android 3.0 或更高版本上)。
【讨论】:
以上是关于选项菜单不从 xml 膨胀的主要内容,如果未能解决你的问题,请参考以下文章
阅读《Android 从入门到精通》(28)——使用 XML 的选项菜单
阅读《Android 从入门到精通》(28)——使用 XML 的选项菜单