【问题标题】:Options Menu not Inflating from xml选项菜单不从 xml 膨胀
【发布时间】:2023-03-25 08:51:01
【问题描述】:
我无法从 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 的实际设备上运行它时没有菜单栏。
【问题讨论】:
标签:
android
menubar
android-inflate
【解决方案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 或更高版本上)。