10

W mojej aplikacji Android używam Sqlite DataBase do przechowywania danych z serwera. Używam ContentProvider i ContentResolver, aby uzyskać dostęp do danych z bazy danych i przy użyciu CursorAdapter do wiązania danych do ListView. Gdy tylko dane zostaną wstawione do bazy danych, CursorAdapter zostanie powiadomiony o aktualizacji ListView. Ponadto za każdym razem, gdy przewijam ListView, otrzymuję nowe dane z bazy DataBase, a ListView zostanie zaktualizowany. Ale gdy dojdę do końca wiersza tabeli, muszę pobrać dane bezpośrednio z serwera bez przechowywania w bazie danych i zaktualizować go w ListView. Teraz, kiedy używam CursorAdapter, który akceptuje dane kursora, w jaki sposób mogę powiązać nowy zestaw danych, który nie pochodzi z bazy danych? Czy jest możliwe utworzenie danych kursora bez pobierania danych z bazy danych i użycie metody ChangeCursor() w ContentProvider do aktualizacji ListView? Jeśli nie, czy istnieje inna metoda osiągnięcia tego samego?Jak utworzyć dane kursora bez pobierania danych z bazy danych w aplikacji Android?

Odpowiedz

9

Czy jest możliwe aby utworzyć dane kursora bez pobierania danych z bazy danych i użyć metody ChangeCursor() w ContentAdapter zaktualizować ListView?

Tak, możesz utworzyć kursor za pomocą MatrixCursor. Jeśli będziesz musiał scalić MatrixCursor z bazą danych Cursor użyj MergeCursor.

+0

Dzięki za odpowiedź. Gdzie dokładnie muszę scalić kursory. Czy powinno to być wykonane w metodzie onLoadFinished() lub query() obiektu ContentProvider podczas wywoływania metody cursor.setNotificationUri()? – Vivek

+0

W onLoadFinished(), ale prawdopodobnie powinieneś pobrać dane z serwera przed zainicjowaniem programu ładującego (jeśli to możliwe) lub odświeżyć program ładujący, jeśli odkładasz pobieranie. – Leszek

Powiązane problemy