我最近遇到了菜单项问题,并在此处提出了一个问题 - Group menu items work but don't display checkmark。
我发现了问题;但是,我注意到单选单选按钮menu items
的奇怪行为。
我知道您必须设置可选菜单项的选中状态
图标菜单中的菜单项(从选项菜单中)无法显示复选框或单选按钮。如果您选择在图标菜单中选中项目,则必须通过在每次状态更改时交换图标和/或文本来手动指示已选中状态。
但是,如果将其设置为true
或false
,则无关紧要。两者都提供了一个radio button
- 类似于您期望的检查状态。
switch (item.getItemId()) {
case R.id.mode_sign :
item.setChecked(true);
display = BinaryOperation.Display.SIGN;
return true;
case R.id.mode_verb :
item.setChecked(true);
display = BinaryOperation.Display.VERB;
return true;
case R.id.mode_noun :
item.setChecked(true);
display = BinaryOperation.Display.NOUN;
return true;
default : return super.onOptionsItemSelected(item);
}
如果您将item.setChecked(true)
交换为item.setChecked(false)
,则上述代码具有完全相同的行为。正如预期的那样,如果您删除setChecked()
语句,则不会选择menu item
。
那么菜单项选择过程实际上是如何工作的?为什么设置true
或false
无关紧要?