我有一个由 aListFragment
支持的ArrayAdapter
,由 a 填充Loader
。当用户单击其中一个项目时,我想将对所选项目以及列表项的其余部分的引用传递给另一个片段。我的问题是我应该如何从适配器中获取所有项目?以下是我看到的可能性:
1.保留对支持的引用List
像这样创建适配器:
List<DomainObject> items = new ArrayList<DomainObject>();
listAdapter = new ArrayAdapter<DomainObject>(getActivity(), R.layout.mine, items);
然后简单地将其传递items
或复制到下一个活动。
我看到的缺点是我依赖于未记录的事实,即我传递给构造函数的同一个列表包含稍后的项目。
2. 遍历适配器
单击项目时,遍历适配器并建立列表。这似乎是不必要的工作量。这些项目包含在List
适配器中,我手动将每个项目复制到一个新列表中。
3.添加到适配器时保留单独的项目列表
在将项目添加到适配器之前,将其添加到我在片段中维护的单独列表中。这也是浪费的,因为项目列表被复制到ArrayAdapter
和片段中。