我一直在绞尽脑汁并搜索许多帖子,但似乎无法找到可扩展ListView / Checkbox问题的可怕状态的答案。我无法得到这个来拯救国家。使用ListView,我创建了一个ListArray,它可以相应地添加和删除位置。我认为解决这个问题的方法是创建一个完全相同的HashMap,但它不起作用。
有没有人有这个工作的例子,并且保存了复选框的状态?
这是在ListView中工作,但我需要类似于HashMap的东西 -
private ListArray<Integer> checkedState = new ListArray<Integer>();
holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
checkedState.add(childPosition);
holder.checkbox.setSelected(true);
//Toast.makeText(_context,holder.txtListChild.getText() + " Selected",Toast.LENGTH_SHORT).show();
}
else{
holder.checkbox.setSelected(false);
checkedState.remove(childPosition).
//Toast.makeText(_context,holder.txtListChild.getText() + " UnSelected",Toast.LENGTH_SHORT).show();
}
}
});
if(checkedState.contains((Integer)childposition) {
holder.checkbox.setChecked(true);
} else {
holder.checkbox.setChecked(false);
}
答案 0 :(得分:0)
我最终没有使用setOnCheckedChangeListener并使用onClick,效果很好。
答案可以在这里找到 - Expandable listview with selectall checkbox : group itemclick and scrolling bug