我有一个ExpandableListAdapter,可以为组动态加载组和子项。我希望能够创建复杂的逻辑来检查子项。一些儿童用品将是多种选择,有些将是单一选择。选择单个选项时,将取消选择所有多项选择项。我对多项选项没有任何问题,但是当选中单个选项时,我无法取消选择项目。欢迎任何建议。
我不包含源代码,因为它非常标准,但可以根据要求提供。
答案 0 :(得分:1)
要标记哪些项不是多项,我会在适配器中创建一些布尔方法。如果需要在布尔数组的帮助下,保持内部每个多项的值。
在你的getChildView()中你可以简单地做一些像
这样的事情if (multiples.get(groupView).get(childView))
myView.setChecked(false);
要刷新可能需要在适配器上调用notifyDataSetChanged()
的可见项目。
答案 1 :(得分:0)
您使用的是onCheckChangeListener
吗?如果是这样,您可能会遇到一些问题。
首先,如果您在点击它们时未取消选中多项选项,那是因为在使用setChecked(false)
调用onCheckChanged
时您没有明确调用isChecked = false
。
如果您希望在选择单个选项时取消选择多项选项,则还必须在{/ 1}}单一选择的mMultiChoiceItem.setChecked(false)
方法中为所有多项选择调用onCheckChanged
项目听众。