我正在使用ListView
,其中包含:
CheckBox
点击我可以使用view.setTag(cursor.getPosition())
保存cursorPosition,我可以对选中的项目采取必要的操作,但是当我向下滚动时,我会看到其他几个CheckBoxes
已选中(仅限视觉)。
作为解决方法,我尝试设置视图说明,在列表中保存CheckedBox
视图ID,然后迭代以查看是否需要将CheckBox
显示为已选中。但是当我向下滚动(相同的视图ID)时,视图似乎被重用。
如何才能显示实际检查的CheckBoxes
?代码:
public class MyViewBinder implements ViewBinder {
public boolean setViewValue(View view, final Cursor cursor, int columnIndex) {
int viewId = view.getId();
switch (viewId) {
case R.id.checkbox:
view.setTag(cursor.getPosition());
return true;
case R.id.....
.......
}
用作:
mySimpleCursorAdapter.setViewBinder(myViewBinder);
答案 0 :(得分:0)
我对ViewBinder界面没有太多经验,但您是否考虑在列表视图(API reference)上使用setChoiceMode()
?您可以将其设置为CHOICE_MODE_MULTIPLE,以便android为您添加复选框。您不必担心以这种方式维护已检查的项目。