我正在使用普通的onCreateOptionsMenu和一个MenuInflater从动作栏的xml加载我的菜单,它在Honeycomb上工作正常但由于某种原因在冰淇淋三明治上它没有第一次加载,后来去了活动将在操作栏上产生预期的项目。
这是我的onCreateOptionsMenu:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Log.e("test", "createmenu");
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.map_menu, menu);
// if (presets.size() == 0)
// menu.getItem(4).setEnabled(false);
return true;
}
这是我的菜单xml文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/info"
android:icon="@drawable/info"
android:title="Info"
android:showAsAction="always" />
<item android:id="@+id/preset"
android:title="Display Preset Option"
android:icon="@drawable/presets"
android:showAsAction="always" />
<item android:id="@+id/favorites"
android:title="Favorites"
android:icon="@drawable/favorites"
android:showAsAction="always" />
<item android:id="@+id/add_favorite"
android:title="Add Favorite"
android:icon="@drawable/plus"
android:showAsAction="always" />
<item android:id="@+id/location"
android:title="Current Location"
android:icon="@drawable/location"
android:showAsAction="always" />
<item android:id="@+id/return_map"
android:title="Return to Original Map"
android:showAsAction="ifRoom" />
<item android:id="@+id/raster"
android:title="Show Raster"
android:icon="@drawable/raster"
android:showAsAction="always" />
<item android:id="@+id/query"
android:title="Queries"
android:icon="@drawable/queries"
android:showAsAction="always" />
<item android:id="@+id/displayNotes"
android:title="Hide Notes" />
<item android:id="@+id/displayPhotos"
android:title="Display Photos"
android:visible="false" />
<item android:id="@+id/add_note"
android:title="Add Note"/>
<item android:id="@+id/help"
android:title="Help"/>
<item android:id="@+id/email"
android:title="Email Map"/>
</menu>
之前有人见过这样的事吗?
答案 0 :(得分:2)
有一种情况是onPrepareOptionsMenu(菜单)返回false而不是super.onPrepareOptionsMenu(菜单)并修复已解决我的问题。我猜冰淇淋三明治有些变化。无论哪种方式,如果您遇到与我一样的问题,请确保您返回super.onPrepareOptionsMenu(菜单)而不是错误。
答案 1 :(得分:0)
这是正确的方法:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuColores: /your code here
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuColores" android:alphabeticShortcut="k"
android:icon="@drawable/palette" /> </menu>
我正在开发一个应用程序,这是我的代码片段..它工作得很好!有时我必须在更改项目图像时清理项目,否则可能无法识别图像