3

10 個の text(20) 型の列を含む SQLite テーブルがあるとします。

ListFragment はデータベースから 4 つの列を取得し、SimpleCursorAdapter を使用してリストに表示します。

選択すると、ListFragment は選択した row_id を DetailFragment に渡し、データベースから 10 列すべてをプルして表示します (別のクエリ)。

別の設計は、ListFragment で必要なすべてのデータを事前に取得し (ただし、必要なデータのみを表示します)、インテントまたはコンストラクターを介してすべてを DesignFragment に渡すことです。このオプションについて私が気に入らなかったのは、元のオプションがデータベースへの 2 番目の呼び出しを意味するのに対し、リストには不要な追加データが含まれることです。

どちらが好ましいオプションでしょうか?

ありがとう。

4

1 に答える 1

1

まあ、私はこれの専門家ではないかもしれませんが、私の意見では、データベースに何度も何度もクエリを実行しない方がよいでしょう

データを 1 回クエリし (データベースの内容がそれほど大きくないと仮定して)、Intentsを使用してそれらを渡します。

ただし、インテントを介して渡すのではなく、データベースのすべての詳細を含むユーティリティ クラスを作成することを個人的にお勧めします。このクラス オブジェクトを一度初期化するだけで、必要な場所でオブジェクトを使用できます。データベースのコンテンツが更新されるたびに、このオブジェクトの詳細を更新する必要があることに注意してください。

(たとえば、公式の Facebook Android SDK のように、Utility クラスを使用して、アクセス トークンやセッション ID を含むすべてのユーザー情報を保存します)

于 2013-01-19T20:50:49.193 に答える