【发布时间】:2013-01-27 19:20:29
【问题描述】:
展开式列表视图中有多个组。我需要在每个中选择一个,即从一组中只选择一个。有没有办法做到这一点?
【问题讨论】:
标签: android expandablelistview
展开式列表视图中有多个组。我需要在每个中选择一个,即从一组中只选择一个。有没有办法做到这一点?
【问题讨论】:
标签: android expandablelistview
如果我没有理解正确,请纠正我,但您希望从 ExpandableListView 中的每个组中进行选择。
例如,您有 2 个组:Cats、Dogs,您想选择 1 只猫和 1 只狗。
这样的话,你需要先在ListView上设置多项选择:
ExpandableListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
然后,当您要选择任何孩子时,请在 OnChildClickListener.onChildClick() 中使用此代码:
if (groupPosition == 0) // for cats group
{
parent.setItemChecked(mCheckedCatPosition, false);
mCheckedCatPosition = childPosition + 1; // + cats header
parent.setItemChecked(mCheckedCatPosition, true);
}
else if (groupPosition == 1) // for dogs group
{
parent.setItemChecked(mCheckedDogPosition, false);
mCheckedDogPosition = childPosition + 2 + adapter.getChildrenCount(0); // + cats header + dogs header + number of cats
parent.setItemChecked(mCheckedDogPosition, true);
}
【讨论】:
在您的 xml 中定义 listview,在另一个 xml 中定义 listview_item,其中包含一个 radio group,然后在您的 java 活动中定义 adapter,该 adapter 为每个 listview_item (listview_row) 获取单选组值
处理与列表视图非常相似的扩展列表
【讨论】:
BaseExpandableListAdapter 扩展它,然后为getChildView 和getChild 上的每个组编写代码