2014-01-15 9 views
7

データベースに保存されているスケジュールは約100件あり、Listviewに基づいて週単位、翌週、翌月などの予定に基づいて表示する必要があります。カーソルアダプターまたはアレイアダプターを使用する方が便利

アプリケーションの起動時にすべてのスケジュールをロードして、ユーザーが選択したオプション(週次、期限切れ、月別など)に基づいて表示することはよいでしょうか。または実行時にクエリを使用し、DBから結果をフェッチし、cusoradapter?を使用してcusorを使用してリストビューにデータをロードします。

どの方法が効果的ですか?私はDBを照会することは常にexpesive操作ですか?それは本当に本当ですか?

+0

http://stackoverflow.com/questions/8556929/cursoradapter-vs-arrayadapter-for-a-listviewこちらをご覧ください。 –

+0

'回答の左側にあるチェックマークをクリックして質問を終了してくださいあなたはほとんど ' –

+0

スーパー、@ user3110424、ありがとうと遅れて申し訳ありません:) – Naruto

答えて

11

CursorAdapterは、データベースがある場合には、すべてのレコードをArrayAdapterとしてロードしないため、より適切です。表示されているレコード、または照会しているレコードだけを読み込みます。 CursorAdapterのドキュメントは次のとおりです。

CursorからListViewウィジェットにデータを公開するアダプタです。

カーソルには "_id"という名前の列が含まれている必要があります。そうしないと、このクラスは機能しません。さらに、マージされたカーソルの "_id"列に重複する値がある場合、このクラスでMergeCursorを使用することはできません。

Content providerのドキュメントから、それはあなたにとって役に立たないかもしれません。

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

ArrayAdapterを超えてCursorAdapterを選択できます。

+0

私たちはカーソルアダプタを使用するためにローダーを使用する必要がありますか? – Naruto

+1

ローダーをカーソル・アダプターで使用できるようにしたい場合は、これを参照してください[LoaderManagerでCursorLoaderがCursorAdapterにカーソルを送信する方法を知っていますか?](http://stackoverflow.com/questions/11150527/how-does-cursorloader-with- loadermanager-know-to-a-cursoradap) –

+0

役に立つリンク(tatのために+1)をありがとう、ここではコンテンツプロバイダーとローダーは互いに依存していますか?コンテンツプロバイダなしで使用できますローダ?あなたは疑いを明確にすることができますか?ありがとう – Naruto

0

ベター使用CursorLoader

A CursorLoaderはのContentProviderに対してバックグラウンドで非同期クエリを実行し、それが呼び出された活性またはFragmentActivityに結果を返します。これにより、クエリが進行中にActivityまたはFragmentActivityがユーザーと対話し続けることができます。アンドロイド3.0で導入

ローダー、ローダーは非同期的活動またはフラグメント内のデータをロードすることが容易になります。

+0

V2.2、2.3バージョンの電話などの古いバージョンのサポートはどうですか? – Naruto

+0

2.2、2.3のように下位バージョンで作業するための@LLLは、android-support-v4.jarを使用します。 API-11で紹介されたFragmentのようなものですが、サポートするライブラリの助けを借りて、より低いAPIにも取り組んでいます。 –

+0

大丈夫です。今、私はアレイアダプタと基本的な技術で私の仕事の半分をやったので、このcusorsは私の仕事を簡単にしますか? cusorsを使用する方が良いですか? – Naruto

関連する問題