2015-01-01 41 views
1

我有一个应用程序与3个选项卡。有一个主要活动,并为每个选项卡片段。从arraylist在单独的片段中填充微调器

在片段1(第一个选项卡)中,我可以添加/删除列表视图中的项目(存储在数组列表中)。在片段2(第二个选项卡)中,我想从第一个选项卡中的数组列表中填充微调器;但是我注意到我无法从单独的片段访问对象(无论是私有的,受保护的还是公共的)。

在片段之间传递数组列表的最佳方式是什么?

回答

2

片段到片段的通信应该通过托管活动。将数据传递给fragment1中的Activity(可能通过自定义接口,以便轻松地重用Fragment),然后从Activity移动到fragment2。有关更多详细信息,请参阅this section of the documentation

通常您会希望一个片段与另一个片段进行通信,例如,根据用户事件更改内容。所有片段到片段的通信都是通过关联的活动完成的。两个碎片不应该直接通信。

+0

该示例帮助我将片段1中的对象传递给活动,但无助于将活动中的对象传递给片段2.如果我的理解正确,似乎建议每次都创建一个新片段2片段1被更新,这看起来非常低效,而不是找到更新需要传递的对象的方式。 – glcohen

+1

@glcohen创建一个新的片段不应该是必要的。看到这个页面的引用:“主机活动可以通过使用'findFragmentById()'捕获Fragment实例,然后直接调用片段的公共方法来将消息传递到片段。” – stkent