2012-09-18 17 views
14

私は初心者アンドロイドプログラマーです。ローカルSQLiteデータベースを作成し、SQLiteDatabase.rawQueryを使用してCursorを返す方法を示すチュートリアルに続いています。明らかにデータベースにアクセスするためのより良い方法であるCursorLoaderを使用するように私のアプリケーションを変更したいと思います。 私の問題は、CursorLoaderコンストラクタがURIを渡すことを期待していることです。 "file:/// [path to db]"と入力するだけですか?ちょっと混乱しているようだ。CursorLoader、ローカルデータベースのURIを取得

+0

完全性のためにチュートリアルへのリンクを投稿する必要があります – Merlin

答えて

7

URIを受け入れるカーソルローダーの背後にある理由は、生のデータベースではなくcontentProviderを照会することが予想されるためです。

したがって、内部的にデータベースを使用するコンテンツプロバイダを作成して、CursorLoaderクラスを直接使用できるようにすることをお勧めします。

コンテンツプロバイダを使用する利点は、データをよりよくカプセル化し、アンドロイドからの多くのapiを簡単に活用できることです。ここで

は、コンテンツプロバイダ

http://developer.android.com/guide/topics/providers/content-provider-creating.html

http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/

を作成する方法についていくつかのガイドは、あなたがのContentProviderを作成しないことを選択した場合は、データを照会するために、直接AsyncTaskLoaderまたはカーソルローダーを拡張することができますあなたが望む方法。

+0

ありがとうございましたこれはちょっと役立ちます。 – user1681358

3

CommonsWareのLoaderExライブラリを見てください。 とローカルSQLiteDatabaseを使用できるので、独自のContentProviderを作成するすべての面倒を見る必要はありません。

+1

少なくとも私自身のContentProvider実装はうまくいきたいと思っています。小さなスタンドアロンのアプリケーションでは過度に見えても、「標準的な」方法であるようです。しかし、私は基本的なことを理解すれば、ある時点でこの図書館を見ていきます。 – user1681358

+0

gitから: 'このプロジェクトは中止されました。自己責任で使用してください。あなたが他人に使ってもらいたい公開フォークを維持している場合は、このREADMEからあなたのフォークへのリンクを求める問題を追加してください。 – zeroDivider

関連する問題