我在菜单中创建了项目列表。所有这些项目都将显示在操作栏中。然后每个项目将再次有一个项目子菜单。
贝娄是我的 xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sceneMenu" >
<item
android:id="@+id/whiteBalanceList"
android:icon="@drawable/white_balance_list"
android:showAsAction="always"
android:title="@string/selWhiteBalance">
<menu>
<item
android:id="@+id/whiteBalanceAuto"
android:title="Auto" />
<item
android:id="@+id/whiteBalanceCloudy"
android:title="Cloudy Daylight" />
<item
android:id="@+id/whiteBalanceDaylight"
android:title="Daylight" />
<item
android:id="@+id/whiteBalanceFluorescent"
android:title="Fluorescent" />
<item
android:id="@+id/whiteBalanceIncandescent"
android:title="Incandescent" />
<item
android:id="@+id/whiteBalanceShade"
android:title="Shade" />
<item
android:id="@+id/whiteBalanceTwilight"
android:title="Twilight" />
<item
android:id="@+id/whiteBalanceWarm"
android:title="Warm Fluorescent" />
</menu>
</item>
<item
android:id="@+id/flashList"
android:icon="@drawable/flash_list"
android:showAsAction="always"
android:title="@string/selFlash">
<menu>
<item
android:id="@+id/flashAuto"
android:title="Auto"/>
<item
android:id="@+id/flashOn"
android:title="On"/>
<item
android:id="@+id/flashOff"
android:title="Off"/>
</menu>
</item>
</menu>
当我尝试使用以下代码删除子菜单项(例如,我想删除“白平衡列表”子菜单下的“自动”项)时:
menu.getItem(R.id.whiteBalanceList).getSubMenu().removeItem(R.id.whiteBalanceAuto);
我收到索引 outOfBoundException 的错误,因为 R.id.whiteBalanceList 实际上会导致随机唯一数字,但 menu.size() 只有 2...
但是如果我做一个 removeItem 代替,即
menu.removeItem(R.id.whiteBalanceList);
它运行完美...
知道为什么吗?