14

私は初心者のAndroidプログラマーで、最近、ローカルSQLiteデータベースを作成し、SQLiteDatabase.rawQueryを使用してカーソルを返すことでデータベースにアクセスする方法を示すチュートリアルに従いました。データベースにアクセスするためのより良い方法であると思われるCursorLoaderを使用するようにアプリを変更したいと思います。私の問題は、CursorLoaderコンストラクターがURIが指定されることを期待していることです。「file:/// [path todb]」と入力するだけですか?少し厄介なようです。

4

2 に答える 2

8

URI を受け入れるカーソル ローダーの背後にある理由は、未加工のデータベースではなく、contentProvider をクエリすることを想定しているためです。

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

コンテンツ プロバイダーを使用する利点は、データをより適切にカプセル化し、Android から直接多くの 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またはカーソル ローダーを直接拡張して、必要な方法でデータをクエリできます。

于 2012-09-18T21:49:39.687 に答える
3

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

于 2012-09-18T21:52:59.160 に答える