setChecked(false)与setChecked(true)相同?

时间:2016-09-21 12:38:25

标签: android

我在android:checkableBehavior="single"中使用group,此组包含少量项目,这些项目代表内容过滤器,没有默认过滤器(意味着不一定要检查)项目,至少是我想要的,如果我点击过滤器并想要禁用它我可以再次点击它,我的期望是使用setChecked(false)项目将取消选中。

然而,it looks like

  

for checkableBehavior =" single" setChecked()将始终检查菜单   项目,即使参数是' false'因为谷歌的实施。

我明显的解决方案是添加一个no filter项目,用户可以检查该项目以表明他们不想要过滤器,但是检查和取消选中相同的项目似乎更直观,还有另一种方式setChecked(false)

1 个答案:

答案 0 :(得分:3)

谷歌在include <string> std::string myString = "Something"; size_t stringLength = myString.size(); (从Nougat开始)的大脑死亡实施:

MenuItemImpl

请注意,@Override public MenuItem setChecked(boolean checked) { if ((mFlags & EXCLUSIVE) != 0) { // Call the method on the Menu since it knows about the others in this // exclusive checkable group mMenu.setExclusiveItemChecked(this); } else { setCheckedInt(checked); } return this; } 标志设置完全忽略checked