ViewBinder setViewValue для элемента ListView приводит к проверке нескольких флажков - PullRequest
0 голосов
/ 24 сентября 2011

Я использую ListView, который имеет:

  1. элемент списка нажмите
  2. CheckBox нажмите

Я могу сохранить курсорПоложениес помощью view.setTag(cursor.getPosition()) я могу предпринять необходимые действия для отмеченного элемента, но когда я прокручиваю вниз, я вижу несколько других отмеченных CheckBoxes (только визуальный).В качестве обходного пути я попытался установить описание вида, сохранив CheckedBox идентификаторы вида в списке, а затем повторить, чтобы увидеть, нужно ли показывать CheckBox как отмеченный.Но представления, кажется, используются повторно, когда я прокручиваю вниз (идентичные идентификаторы представления).

Как я могу показать только фактический отмеченный 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);

1 Ответ

0 голосов
/ 24 сентября 2011

У меня нет особого опыта работы с интерфейсом ViewBinder, но вы рассматривали возможность использования setChoiceMode() в просмотре списка ( Справочник API )? Вы можете установить его на CHOICE_MODE_MULTIPLE , чтобы андроид добавил для вас флажки. Вам не нужно беспокоиться о сохранении отмеченных элементов таким образом.

Демоверсия API .

...