CursorLoader, erhalten URI für lokale Datenbank
Ich bin ein Neuling android-Programmierer und vor kurzem habe ich folgte ein tutorial, das zeigt, wie eine lokale SQLite-Datenbank und dann Zugriff auf die Datenbank mit SQLiteDatabase.rawQuery die Rückgabe eines Cursor. Ich möchte ändern meine app zu verwenden CursorLoader, welche anscheinend einen besseren Weg, um den Zugriff auf die Datenbank.
Mein problem ist das CursorLoader Konstruktor erwartet einen URI angegeben werden. Muss ich nur den input "file:///[Pfad zur db]"? Scheint ein bisschen chaotisch.
- Sollten Sie post den link zu dem tutorial für die Vollständigkeit
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Grund hinter cursor loader Annahme einer URI ist, dass es erwartet, dass die Abfrage eines contentProvider und nicht ein raw-Datenbank.
Daher schlage ich vor, Sie erstellen ein content-Anbieter, die intern verwendet Ihre Datenbank, so dass Sie verwenden können, die CursorLoader Klasse direkt.
Den Vorteil der Verwendung von einem content-Anbieter ist, dass es kapselt besser Ihre Daten und können Sie ganz einfach nutzen, eine Menge von apis von android direkt.
Hier sind einige guides, wie man erstellen Sie Ihre content-provider
http://developer.android.com/guide/topics/providers/content-provider-creating.html
http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
Wenn Sie es nicht schaffen, einen ContentProvider können Sie verlängern AsyncTaskLoader oder den cursor-loader direkt auf die Abfrage der Daten so, wie Sie wollen.
Haben Sie einen Blick auf CommonsWare ist LoaderEx Bibliothek. Es ermöglicht Ihnen die Verwendung einer
Loader
mit einem lokalenSQLiteDatabase
, so dass Sie nicht haben, um sich überhaupt die Mühe der Erstellung Ihrer eigenenContentProvider
.THIS PROJECT IS DISCONTINUED. Use it at your own risk. If you are maintaining a public fork that you would like others to consider using, add an issue asking for a link to your fork from this README.