ViewPager を使用して、単一の Cursor (元は ContentProvider から) からページごとに複数のアイテムを表示したいと思います。レイアウトはグリッドとして表示され、各アイテムの画像とテキストが含まれます。データ構造を再構築せずに UI に反映する必要があるリストへの追加と削除が頻繁に発生します (これにより、以下のいくつかのオプションが除外される場合があります)。
現在のプロセス:
- メイン アクティビティでカーソルをインスタンス化します。
- カーソルを受け取る PagerAdapter から拡張された独自の Cursor Adapter クラスを作成します。カーソルは、getCount() によって ViewPager が保持するページ数を決定するために使用されます (その後、ページごとに表示されるアイテムの数に応じて調整されます)。
- Cursor Adapter の getItem メソッドでは、最終的にリストのサブセットを含むフラグメントを作成します。
この段階では、どの方法が最適かはわかりません。私は:
A. カーソルとインデックスを Fragment に渡して、結果の次のページを表示します (たとえば、setCursorIndex( Cursor, int ) メソッドを使用します) 。
B. 結果を取得する ContentUris 文字列のリストを渡します。(これにより、リストを再構築せずにリストを更新できなくなるでしょうか?)
C. 項目を含む引数バンドル (画像とテキストのバイト配列を含むリスト) を作成します。(これは画像を使用しているため、効率が悪いようです。)
D. アダプターから開始インデックスを受け取った各 Fragment で新しい Cursor を再作成します。(非効率的な?)
助けてくれて本当にありがとうございます。