我有一个链接到API 11级的项目。当我在手机上运行这个项目,并点击菜单键,我的菜单显示的很好。当我在运行android 3.0.1的设备上运行时,菜单键不会出现在相同的活动上:
知道为什么这个活动的菜单键不显示吗?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(...);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear();
menu.add(...);
return super.onPrepareOptionsMenu(menu);
}这个活动不应该出现菜单键吗?
谢谢
--更新
在进行了更多的搜索之后,我们发现了这个问题:http://groups.google.com/group/android-developers/browse_thread/thread/c4b1b835060bd93f。
哈克伯恩说,如果你不以sdk 11为目标,菜单按钮就会显示出来。所以我现在有一个很奇怪的设置:
<manifest>
<uses-sdk
android:minSdkVersion="5"
android:targetSdkVersion="10" />
<application
android:hardwareAccelerated="true" >
</application>
</manifest>在我的项目属性中,我链接到sdk 11,我链接到sdk 11的原因是为了在上面的清单中使用"hardwareAccelerated=true“标志。
总之,我在项目设置中链接到sdk 11,但在清单中设置targetSdkVersion=10。这是合法的吗?我以为他们必须匹配,
谢谢
发布于 2011-05-27 01:54:16
这是合法的,因为它将工作,这是不合法的Android用户体验标准。:)
当您将API 11作为目标时,没有在系统栏中获得菜单按钮的原因是,我们只在支持遗留应用程序时才显示它。新的应用程序应该使用动作栏为您的活动提供选项。操作栏将由与先前版本中的选项菜单填充相同的机制填充。
目标API 11,并确保在主题或活动中不禁用标题栏,默认情况下您将得到一个操作栏。菜单将出现在右上角。
发布于 2011-05-27 00:45:02
这是正当的:它会建得很好,也会很好。我不知道接下来会出现什么问题:文档明确地说,您可以针对比您正在构建的版本更低的版本。
发布于 2012-03-15 06:23:46
只需在清单文件中删除android:targetVersion属性并使用android:minSdkVersion="8" minsdk版本就可以低于设备版本。
https://stackoverflow.com/questions/6146511
复制相似问题