该篇文章从eoeAndroid搬迁过来的,原文地址:[Android算法] 解决ListView里嵌套CheckBox出现的数据刷新问题
问题:当ListView里嵌套CheckBox时,我们勾选当前页面的数据后,下拉刷新后下一页也会出现被勾选的现象
解决:可以在数据源里面设置一个标记字段,如Flag=false,然后根据数据源判断CheckBox是否被点击,CheckBox的点击事件要写在CheckBox的设置之前。如:
final int index = arg0;
/**
*CheckBox点击事件
*/
taskHolder.taskItemSelect
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
taskBeans.get(index).setFlag(isChecked);
}
});
if (taskBeans.get(arg0).getName() != null) {
taskHolder.taskItemName.setText(taskBeans.get(arg0).getName()
.trim());
} else {
taskHolder.taskItemName.setText("");
}
//根据数据源设置CheckBox的状态
taskHolder.taskItemSelect.setChecked(taskBeans.get(arg0).isFlag());