我已经阅读了 android 开发者页面上的说明以获得可检查的菜单项:
http://developer.android.com/guide/topics/ui/menus.html
这是我的 xmlmenu:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="all">
<item android:id="@+id/regu"
android:title="@string/Regulatory" />
<item android:id="@+id/warn"
android:title="@string/Warning" />
<item android:id="@+id/temp"
android:title="@string/Temporary" />
<item android:id="@+id/bicy"
android:title="@string/Bicycle" />
</group>
</menu>
这是我的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.regu:
if (item.isChecked())
{
item.setChecked(false);
currAvailableOptions++;
}
else if(0 != currAvailableOptions)
{
item.setChecked(true);
currAvailableOptions--;
}
return true;
case R.id.warn:
if (item.isChecked())
{
item.setChecked(false);
currAvailableOptions++;
}
else if(0 != currAvailableOptions)
{
item.setChecked(true);
currAvailableOptions--;
}
return true;
case R.id.temp:
if (item.isChecked())
{
item.setChecked(false);
currAvailableOptions++;
}
else if(0 != currAvailableOptions)
{
item.setChecked(true);
currAvailableOptions--;
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.app_menu, menu);
return true;
}
问题是当我单击一个项目时,菜单项消失了。它不必为了检查其他菜单项而保持可见?
有什么想法吗?
问候
最佳答案
Checkable items appear only in submenus or context menus.
他们 (Google) 的子菜单意味着:
Submenu A floating list of menu items that appears when the user touches a menu item that contains a nested menu.
因为你的菜单项不是子菜单项,所以它不会工作
关于Android——可检查菜单项的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844101/