Как обновить курсор вашего адаптера, когда база данных изменилась? - PullRequest
0 голосов
/ 04 мая 2011

например, когда я добавляю строку в базу данных, я запускаю ff.code,

            Cursor crs = adapterToRefresh.getCursor();
            crs.close();
            crs = this.dbImmunization.queryAll();
            this.startManagingCursor(crs);
            crs.moveToFirst();
            adapterToRefresh.changeCursor(crs);
            adapterToRefresh.notifyDataSetChanged();

, где crs - это курсор, извлекаемый внутри адаптера курсора.

, пока эта реализация выдает ошибку CursorIndexOutOfBoundsException.

Помогите кому-нибудь!

Ответы [ 2 ]

0 голосов
/ 04 мая 2011

Вы вызвали startManagingCursor (курсор), поэтому вам не нужно вызывать adapter.notifyDataSetChanged (). Вместо этого вызывайте cursor.requery (), когда вам нужно обновить его запрос и извлеченные данные.

0 голосов
/ 04 мая 2011

Сначала используйте браузер sqlite, чтобы просмотреть таблицы и строки, если они созданы правильно. во-вторых, когда вы просматриваете базу данных, как вы идете в конец строки. может быть есть проблема. Это будет понятнее только тогда, когда вы покажете вывод logcat.

...