我使用带有CheckBox的ListView,但正如大多数人知道的那样,当您向下滚动滚动时,选中的CheckBox会在您滚动滚动滚动时取消选中。所以我一直在阅读,我发现你可以通过(使用getView)CB的ID到getView的位置参数来保存CheckBox状态!CheckBox在ListView中检查状态
但我不能使用getView与SimpleCursorAdapter,可以吗?因为我使用bindView!
感谢
我使用带有CheckBox的ListView,但正如大多数人知道的那样,当您向下滚动滚动时,选中的CheckBox会在您滚动滚动滚动时取消选中。所以我一直在阅读,我发现你可以通过(使用getView)CB的ID到getView的位置参数来保存CheckBox状态!CheckBox在ListView中检查状态
但我不能使用getView与SimpleCursorAdapter,可以吗?因为我使用bindView!
感谢
我设法复选框状态恢复后,我用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;
}
});
但还是奇怪的东西发生,该复选框被在7或8个职位后回收。如果我检查第一个CheckBox和超过10个位置/行,第八个也被检查,当我检查最后一个时,同样的事情发生,8个位置上会有一个检查CheckBox。
任何虽然? Ideias?帮帮我!
发生了什么是回收。 7行适合你的屏幕,当你向下滚动时,最上面的一行正在被回收用于新的底部。你应该做的是保存复选框的状态。
这里是一个很好的解决了类似的问题:
https://github.com/commonsguy/cw-android/tree/master/FancyLists/RateList
你刚才问这个是/约SimpleCursorAdapter或毫无疑问,你是不是也问如何使用BaseAdapter? BaseAdapters更灵活,但需要编码才能使用。 – 2010-04-10 08:33:33
林问我是否有一种方法来留在SimpleCursorAdapter,仍然设法解决问题!否则,即时通讯建议,谢谢 – 2010-04-11 08:17:35