[英]CheckBox checked state in a ListView
我正在将ListView与CheckBox一起使用,但是众所周知,当您向下滚动时,选中的CheckBox在向上滚动时会被取消选中。 因此,我一直在阅读,发现可以将CB的ID传递(使用getView)到getView的position参数以保存CheckBox状态!
但是我不能将getView与SimpleCursorAdapter一起使用,可以吗? 因为我正在使用bindView!
谢谢
发生的事情是回收。 屏幕上可容纳7行,向下滚动时,顶部的将被回收,底部的将被回收。 您应该做的是保存复选框的状态。
这是解决类似问题的好方法:
https://github.com/commonsguy/cw-android/tree/master/FancyLists/RateList
使用setViewBinder向上/向下滚动后,我设法恢复了复选框状态(在另一个答案中看到了它):
mAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if(columnIndex==4) {
cb=(CheckBox)view;
cb.setChecked(cursor.getInt(4)==0? false:true);
return true;
}
return false;
}
});
但是仍然发生了一些奇怪的事情,CheckBox在7或8个位置后被回收。 如果我检查第一个CheckBox并且有10个以上的位置/行,则还会检查第8个,当我检查最后一个时,也会发生同样的情况,上面8个位置将有一个Checked CheckBox。
可以吗 爱迪亚? 救命!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.