Просмотр списка - прокрутка вниз, БЕЗ пропуска пунктов - PullRequest
1 голос
/ 05 августа 2011

У меня есть ListView, который заполняется из пользовательского CursorAdapter.Каждый элемент (-row) имеет флажок.

Несколько важных фактов, прежде чем я объясню проблему:

A. Проверенные / непроверенные данные поступают изDB.

B .Я сохраняю расположение каждого «флажка» в логическом массиве.

C. Невозможно узнать, какой флажок установлен, без повторного запроса до тех пор, пока я не прокрутите его,поскольку он еще не загружен.

Проблема:

Я пытаюсь создать кнопку «Очистить все».для каждого «проверенного» флажка мне придется обновить столбец в БД на «нет».

Я попробовал LV.scrollTo(lastItem), а затем проверил, проверяется ли каждая строка:

    for (int i = 0; i < cursor.getCount(); i++) {
        boolean t = itemChecked.get(i); //check the array to see if this row is checked
        if (t == true) {
        //set to "no" in the DB
        }

, но казалось, что он "пропустил" строки между тем, которые отображались насамый верх и самый низ.Я подумал, что это происходит, потому что они не обрабатываются и, следовательно, не сохраняют «проверенное» состояние в массиве.

Затем я попробовал этот маленький кусочек кода, который будет прокручивать каждые 5 строк или около того, но этовсе еще не работал:

 int j = 0; 
//loop times is the array.count() over the amount of rows that fit in the screen 
     while(j < loopTimes){ 
 int n = j*fitToScreen;

 Listview.setSelection(n);

   j++ ;
 }

Он просто прыгает прямо на дно, не читая эти строки.

Я предполагаю, что для рендеринга строк недостаточно времени.

Есть ли другой способ прокрутки вниз, не пропуская строки или выполняя то, что я пытаюсь сделать?

Спасибо заранее.

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