私の友人からは、CursorAdapterがMVCルールに従わないと聞きましたが、モデルからではなくビューからデータベースに直接値を取ります。さらに、彼は毎回ユーザーがリストビューで項目を反復し、CursorAdapterはdbsクエリーを何度も実行すると言いました。その結果、CursorAdapterは頻繁には使用されません。 私はこの声明について非常に興味があります、誰でも私を助けることができますか?彼は正義か間違っていますか?そして彼が正しいのであれば、私は代わりに何を使えますか?ListViewにCursorAdapterを使用しない場合
答えて
CursorAdapter ...ではない、あなたのモデルがあることを定義するかに依存モデル
を通じて、ビューに直接データベースからの値をとります。 Cursor
モデルとすることができます。この場合、CursorAdapter
はモデルからデータを取り出してビューに適用します。
あなたの友人は、カスタムJavaクラスのセットとして定義されたモデルを考えているかもしれません。その場合、CursorAdapter
はこれらのクラスについて何も知らないでしょう。
彼は、リストビューを経由して毎回ユーザー反復項目を述べ、CursorAdapterが再びDBSクエリを実行し、再び
そうでもありません。 CursorAdapter
は、データベースクエリの実行について何も知らない。
私が考えることができる唯一のシナリオは、クエリが1MB以上の大きな結果セットを持っている場合に、友人が説明するものと似ています。その場合、Cursor
は結果セット全体を保持しません。通常の方法です。代わりに、結果の一部が保持され、ユーザがCursor
の内容をスクロールした場合、Cursor
はデータベースI/Oをトリガしてより多くの結果を取得します(以前のものを取り除き、保持されるメモリの総量を最小限に抑えます)。 Cursor
)。その結果、
、CursorAdapterが頻繁に使用されることはありません
私はあまり頻繁にArrayAdapter
であるよりも、使用されていることを言うだろう、と多くの開発者が移動の両方が、一般的に好意から下落していますRecyclerView
およびRecyclerView.Adapter
。
MVC/MVP/MVVMアーキテクチャの一部として「本当の」モデル(およびおそらくビューモデル)を持っているのではなく、Cursor
をモデルとして使用しています。確かに、私が大きなプロジェクトから聞いたことは、Cursor
が、CursorAdapter
またはRecyclerView.Adapter
で直接使用されるのではなく、他のモデルオブジェクトの投入に主に使用されることを示しています。しかし、それは本当に多くのアプリケーションに依存します。簡単なアプリケーションでは、特定のGUIアーキテクチャを厳密に遵守する必要はなく、「簡単なアプリケーション」と「より大きなプロジェクト」の境界線を定義することは困難です。
もし彼が正しいのであれば、私は代わりにどのようなアダプタを使用できますか?あなたの友人がモデルのJavaオブジェクトを望んでいる場合、一般的には、モデルオブジェクトのコレクションで取得する方法を知っている
ArrayAdapter
またはBaseAdapter
を使用することになり
。または、RecyclerView
レルムでは、モデルオブジェクトのコレクションの構造について知っているRecyclerView.Adapter
を使用します。
はそんなにありがとうそれを得た、仲間、ありがとうございました。 –
- 1. Android - CursorAdapter-ish Subclass、ListView用
- 2. CursorAdapterとListViewのArrayAdapter
- 3. カスタムCursorAdapterを使用しているときにListViewがアクティビティに表示されない
- 4. awsラムダ関数を使用しない場合と使用しない場合
- 5. CoreAnimationを使用しない場合と使用しない場合
- 6. MVVMを使用しない場合は?
- 7. カスタムCursorAdapterのListViewアイテムがイメージボタンで応答しないのはなぜですか?
- 8. Python 2.7で__init__を使用しない場合と使用する場合
- 9. カスタムCursorAdapterにListViewが設定されていません
- 10. ListViewのOnClickListenerには、CursorAdapterが設定されています
- 11. sass - 使用する場合としない場合
- 12. CursorAdapterでViewHolderを使用するには?
- 13. androidでlistviewを使用する場合のページ番号
- 14. ViewStub内でListViewを使用する場合のNullPointerExeption
- 15. ListView - LayoutInflatorを使用しないカスタムアダプタ
- 16. 複数のItemTemplateを使用している場合、ListViewアイテムがすべて伸びていない
- 17. リフレクションコントロールでネイティブのListViewがAndroidで動作しない場合
- 18. デリゲートを使用する(または使用しない)場合
- 19. PARTITION BY(OracleでKEEPを使用している場合と使用していない場合)
- 20. 私は間違っている:CursorAdapterとListview
- 21. どのようなCursorAdapterを使用しますか?
- 22. 「new」キーワードを使用する場合と使用しない場合の違いを教えてください
- 23. ハスケルでハムズを使用する場合Yesodなしの場合
- 24. ドラッグドロップListViewのAndroidの場合
- 25. RavenDB使用しない場合は削除しない
- 26. onContentChanged()でカスタムCursorAdapterを使用しているAndroid
- 27. listview.setOnItemClickListenerがCursorAdapterを使用していません
- 28. オーバーロード中にconstを使用しない場合の影響
- 29. AndroidでCursorAdapterでORMLiteを使用する
- 30. 新しいアイテムが追加されたときにRequeryが呼び出された後、CursorAdapterを使用したAndroid ListViewのスクロール位置が正しくない
絶対に間違っている、それはGoogleの人たちによって使用されている可能な限り - のいずれか 'CursorAdapter'または' ResourceCursorAdapter'または 'SimpleCursorAdapter' – pskink
は、私はあなたが私の一日を作った、 –