0

我正在使用ListView具有:

  1. 列表项点击
  2. CheckBox点击

我可以通过 using 保存 cursorPositionview.setTag(cursor.getPosition())并且可以对选中的项目采取必要的操作,但是当我向下滚动时,我会看到其他几个已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);

4

1 回答 1

0

我对 ViewBinder 接口没有太多经验,但您是否考虑setChoiceMode()过在列表视图(API 参考)上使用?您可以将其设置为CHOICE_MODE_MULTIPLE,以便 android 为您添加复选框。您不必担心以这种方式维护已检查的项目。

API 演示示例

于 2011-09-23T21:02:32.783 回答