2010-06-19 4 views
2

Я использую базу данных SQLite, Theres ситуация, когда у меня есть список, который отображает все полевые данные «name» таблицы «table1». Теперь у меня есть кнопка для вставки данных в «table1». Список заполняется с помощью простого адаптера курсора, который передается курсором «cursor1», заполненным данными. «cursor1» подготовлен с использованием SQLite-запроса - «SELECT * FROM table1». Теперь, когда я вставляю данные, мне также нужно обновить список.выбор между запросом или повторным запуском запроса в SQLite

Мой вопрос

IS-
  1. будет смысл адаптер изменение базы данных автоматически (я предполагаю, что нет)?
  2. с помощью cursor1.requery() правильно или я должен использовать cursor1 = db.query("table1", null, null, null, null, null, null);

Было бы полезно, если вы можете пролить некоторый свет на котором 1 лучше и в какой ситуации. Coz для ситуации, о которой я говорил выше, команда requery() не дает действительного результата, а более поздний 1 работает нормально. все еще не могу понять, в чем проблема.

ответ

1

будет ли адаптер соответствовать базе данных изменить автоматически (я думаю, нет)?

Нет, Adapter не будет автоматически изменять базу данных.

использованием cursor1.requery() является правильным или я должен использовать CURSOR1 = db.query ("table1", NULL, NULL, NULL, NULL, NULL, NULL);

requery(). Here is a sample project из одной из моих книг, демонстрирующих технику.

+0

хорошо thanx много Mark! но я использую код, где я вставляю некоторые значения в «table1», а затем вызываю функцию requery, это не работает. Первоначально таблица была пустой, позже я вставил значение, и запрос не возвратил никакого результата. Но когда я использовал cursor1 = db.query ("table1", null, null, null, null, null, null); , он вернул мне значения ... Ват должен я понять из этого ?? Пожалуйста, пролишите немного света на это ... – JaVadid

+0

Кажется, что метод requery устарел: http://developer.android.com/reference/android/database/Cursor.html – tjb

+1

@tjb: Да, этот ответ от более двух лет назад. Либо запустите новый запрос в «AsyncTask», либо замените новый «Курсор» или используйте «Loader». – CommonsWare

Смежные вопросы