我一直在绞尽脑汁并搜索许多帖子,但似乎找不到可扩展列表视图/复选框问题的可怕状态的答案。我无法得到这个来拯救国家。使用ListView,我创建了一个ListArray,它将相应地添加和删除位置。我认为解决这个问题的方法是创建一个 HashMap 来做完全相同的事情,但它不起作用。
有没有人有这个工作的例子和正在保存的复选框的状态?
这是它在 ListView 中工作,但我需要类似的东西与哈希地图 -
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);
}
我最终没有使用setOnCheckedChangeListener并使用onClick,这很好用。
答案可以在这里找到 - 带有全选复选框的可扩展列表视图:分组项目单击和滚动错误