CheckBox проверил состояние в ListView - PullRequest
0 голосов
/ 10 апреля 2010

Я использую ListView с CheckBox, но, как большинство из вас знает, когда вы прокручиваете свиток, проверенный CheckBox не проверяется при сворачивании прокрутки. Итак, я читал и обнаружил, что вы можете передать (используя getView) идентификатор CB в параметр position getView, чтобы сохранить состояние CheckBox!

Но я не могу использовать getView с SimpleCursorAdapter, могу я? Потому что я использую bindView!

Спасибо

Ответы [ 2 ]

1 голос
/ 25 января 2011

То, что происходит, это переработка. На вашем экране помещается 7 рядов, и когда вы прокручиваете вниз, верхний перерабатывается для нового внизу. Что вы должны сделать, это сохранить состояния флажков.

Вот хорошее решение похожей проблемы:

https://github.com/commonsguy/cw-android/tree/master/FancyLists/RateList

0 голосов
/ 19 апреля 2010

Мне удалось восстановить состояние флажка после прокрутки вверх / вниз с помощью 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 позиций будет проверенный CheckBox.

Есть мысли? Ideias? Помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...