によって設定されるにListFragment
裏打ちされたArrayAdapter
がありLoader
ます。ユーザーが項目の 1 つをクリックすると、選択した項目への参照と、残りのリスト項目を別のフラグメントに渡したいと考えています。私の質問は、アダプターからすべてのアイテムを取得するにはどうすればよいですか? 私が見る可能性は次のとおりです。
1.バッキングへの参照を保持するList
次のようにアダプターを作成します。
List<DomainObject> items = new ArrayList<DomainObject>();
listAdapter = new ArrayAdapter<DomainObject>(getActivity(), R.layout.mine, items);
そして、それを次のアクティビティに渡すitems
かコピーするだけです。
これの欠点は、コンストラクターに渡す同じリストに後でアイテムが含まれているという文書化されていない事実に依存していることです。
2. アダプターを反復処理する
アイテムがクリックされると、アダプターを反復処理してリストを作成します。これは不必要な量の作業のようです。アイテムはアダプターに含まれてList
おり、各アイテムを手動で新しいリストにコピーしています。
3.アダプターに追加するときは、項目の別のリストを保持します
アイテムをアダプターに追加する前に、フラグメントで保持している別のリストに追加します。ArrayAdapter
アイテムのリストがと フラグメントにコピーされるため、これも無駄です。