Android Использование разных инструментов - PullRequest
1 голос
/ 14 марта 2012

Мне было интересно: я пытаюсь создать приложение, которое в виде ListView отображает данные из базы данных.

Вот конкретная вещь: я хочу, чтобы при событии, которое изменило базу данных, представление списка автоматически обновлялось, как если бы в базе данных был «прослушиватель», который ... ну автоматически загружал представление списка.

Из того, что я прочитал, я должен использовать loadManager, курсор, фрагмент (чтобы я мог использовать loadManager для предыдущих версий 3.0) ... но, поскольку я новичок, мне трудно понять .

Мне было интересно, может ли кто-нибудь просто попытаться объяснить мне, как использовать эти инструменты вместе (я не прошу код, просто объяснение :))

Спасибо!

РЕДАКТИРОВАТЬ: Хорошо, поскольку я новичок, и я очень потерян, мне нужно больше объяснений.

Различные шаги: 1) Упражнение создайте listView, пользовательский CursorAdapter и курсор на onCreate (). Затем все еще в onCreate, он подает курсор стандартным запросом к объекту SQLiteDatabase. Затем мы воздействуем на курсор на адаптер, а адаптер на listView.

2) Когда приходит событие вставки, я использую функцию вставки SQLiteDatabase, а затем получаю результат запроса на курсор и передаю его в CursorAdapter списка (будет ли он автоматически обновлять представление списка?)

3) Для моего customAdapter хорошо ... Чем больше я читаю источники, примеры и учебные пособия, тем больше я теряюсь. Просто понял, что я должен переопределить bindView () и newView (), я действительно не понял их цели, плюс способ, которым я хочу создать много типов данных для моего адаптера ...

Я чувствую, что я не очень умный, но я действительно пытался, и я все еще потерян: (

1 Ответ

0 голосов
/ 14 марта 2012

Если вы используете CursorAdapter в своем ListView, это все для вас!http://developer.android.com/reference/android/widget/CursorAdapter.html

Редактировать: Извините, я должен объяснить больше.Я быстро прочитал его и подумал, что у вас уже есть ListView и вы хотите его обновлять.

Когда вы получаете свои данные из базы данных, будь то через ContentResolver.query, или SQLiteDatabase.query, или что-то еще,Вы получите Курсор обратно.Вы должны использовать это в CursorAdapter.

Вам нужно создать подкласс CursorAdapter и переопределить bindView, чтобы использовать данные из курсора внутри ListView (так как он не знает, какие у вас есть столбцы и какое поле отображается на чтоПосмотреть).Предполагая, что вы используете флаг FLAG_REGISTER_CONTENT_OBSERVER при создании CursorAdapter, каждый раз, когда данные в вашем курсоре обновляются, список должен обновляться.

...