19

CursorLoaderの使用方法を理解するのに問題があります。

私が解決しようとしている問題は、SQLiteデータベースのデータをListActivityに表示する方法です。リスト行はカスタムレイアウトを使用するため、3つのフィールド(すべて同じテーブル内)からのデータが必要です。

Stack Overflowに関するいくつかの質問に加えて、このブログ投稿も読んで、データベース用のコンテンツプロバイダーを作成する必要があると判断しました。

これを行う方法についてAndroidヘルプにアクセスする前に、コンテンツプロバイダーを使用したことはありません。

ポイント1は次のように述べています。

完全に独自のアプリケーション内で使用する場合は、SQLiteデータベースを使用するためのプロバイダーは必要ありません。

だから今私は立ち往生しているので、ContentProviderなしでCursorLoaderを使用することはできないようです。アプリケーション内でのみ使用する場合は、ContentProviderを作成しないことをお勧めします。

私は現在、ヘルプが古くなっているのではないか、それが書かれたときにカーソルローダーについて考えていなかったのではないかと考えています。

それで、とにかく続行してContentProviderを作成する必要がありますか、それともこれを行う別の方法がありますか?どんなアドバイスも役に立ちます!

4

3 に答える 3

10

簡単に言うと、独自のローダーを使用してコンテンツプロバイダーの必要性をスキップし、SQLiteデータベースと直接インターフェイスすることができます。他の人はすでに実装を行っており、そのうちの1つはLoaderExと呼ばれるCommonsWareによって行われています。そのプロジェクトには、便利なSQLiteCursorLoaderというクラスがあります。

上記のGitHubプロジェクトによって提供されたサンプルに加えて、コンテンツプロバイダーなしでローダーを使用して私のテストアプリケーションの1つ(これもGitHub上にあります)をチェックアウトできます。

于 2012-08-21T16:15:15.907 に答える
8

調査したところ、組み込みのCursorLoaderを使用している場合は、ContentProviderが必要であることがわかりました。

wsanvilleが言うように、ContentProviderを必要としないように、独自のローダーをロールすることができます。

于 2013-01-18T14:40:08.573 に答える
0

ContentProviderの作成は非常に簡単です。CursorLoaderの使用の邪魔にならないほど簡単です。簡単なContentProviderと一緒に使用する簡単な例を次に示します。http://responseandroid.com/2012/03/19/using-an-android-cursor-loader-with-a-content-provider.html

于 2014-12-12T15:52:20.357 に答える