Лучший способ обновить адаптер / ListView на Android

Моя книга «Привет, Android» дает это как способ использования настраиваемого db helper, настраивая курсор, а затем настраивая адаптер следующим образом:

Cursor cursor
CustomDatabaseHelper test = new CustomDatabaseHelper(this);
try {
        cursor = getData();
        showData(cursor);
} finally {
        test.close();
}

Однако при этом каждый раз, когда мне нужно обновить набор данных, мне нужно продолжать запускать этот блок кода (что становится немного сложно внутри onClick () для кнопки из-за того, что "this" недоступно.

Это лучший способ обновить набор данных, или мне следует подумать о том, чтобы удалить .close и выпустить адаптер .notifyDataSetChanged ()? Если я это сделаю это, иногда я получаю силу, близкую к (и я не могу вспомнить в данный момент), но иногда она не может удалить должным образом - я думаю, это может быть потому, что база данных в настоящее время открыта и пытается снова перо.

Должны ли мы также объявлять переменные для Cursors, DatabaseHelpers и Adapter в классе (вне OnCreate), чтобы они были доступны для всех функций?

Я понимаю, что на данном этапе это просто плохое программирование, но я пытаюсь получить некоторые подсказки о том, как лучше всего делать что-то.

71
задан Simon 16 November 2010 в 12:31
поделиться