有时候Android奇怪是真的了不起(和有趣的..)。我这样解决:
a)在XML中定义一个子菜单占位符,如下所示:
android:titleCondensed="Areas"
android:title="Areas"
android:icon="@drawable/restaur"
android:enabled="true">
b)在OnCreateOptionsMenu中获取子菜单项,清除它并添加我的子菜单项,如下所示:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mapoptions, menu);
int idx=0;
subm = menu.getItem(MYITEM_INDEX).getSubMenu(); // get my MenuItem with placeholder submenu
subm.clear(); // delete place holder
while(true)
{
anarea = m_areas.GetArea(idx); // get a new area, return null if no more areas
if(anarea == null)
break;
subm.add(0, SUBAREASID+idx, idx, anarea.GetName()); // id is idx+ my constant
++idx;
}
}