您可以使用
SparseBooleanArray
为了这个
在适配器中,初始化并保留一个稀疏布尔数组
SparseBooleanArray mSelections = new SparseBooleanArray();
在您的
getGroupView
,请执行以下操作
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
Group_Items gr = (Group_Items) getGroup(groupPosition);
long group_id = getGroupId(groupPosition);
if (convertView == null) {
LayoutInflater inf = (LayoutInflater) context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = inf.inflate(R.layout.expandable_group_items, null);
CheckBox chk=(CheckBox) convertView.findViewById(R.id.chk);
chk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = (int) v.getTag();
mSelections.put(position, !mSelections.get(position, false));
((CheckBox)v).setChecked(mSelections.get(position, false));
}
});
}
TextView title = (TextView) convertView.findViewById(R.id.title);
title.setText(gr.getName());
CheckBox chk=(CheckBox) convertView.findViewById(R.id.chk);
chk.setTag(groupPosition);
chk.setChecked(mSelections.get(groupPosition, false));
return convertView;
}