带CheckedTextView的ExpandableListAdapter - 复杂的选择逻辑

时间:2014-07-13 14:53:50

标签: android android-activity android-listview android-checkbox

我有一个ExpandableListAdapter,可以为组动态加载组和子项。我希望能够创建复杂的逻辑来检查子项。一些儿童用品将是多种选择,有些将是单一选择。选择单个选项时,将取消选择所有多项选择项。我对多项选项没有任何问题,但是当选中单个选项时,我无法取消选择项目。欢迎任何建议。

我不包含源代码,因为它非常标准,但可以根据要求提供。

2 个答案:

答案 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项目听众。