在两个以上的片段之间进行通信

时间:2015-10-31 14:29:57

标签: android android-fragments interface

我有一个包含三个片段的活动,这就是我在三个片段之间进行交流的方式:

首先,我只在FragmentA中显示ActivityA。基于RadioButtonSelection,我添加了相应的FragmentB(两个可用布局)和一个FragmentC。如果FragmentB中的输入已更改String,则FragmentC's次观看次数会发生变化,但如果RadioButton中的FragmentA选项发生变化,则我会删除Fragment B和FragmentC并根据FragmentA的输入再次添加它们。

现在,我已经在FragmentA中实现了一个沟通者界面,在FragmentB中实现了另一个界面。它看起来很乱。如何实现单个界面以在它们三者和活动之间进行通信?

感谢。

2 个答案:

答案 0 :(得分:1)

我还建议实现一个接口。 Here是一篇很好的博客文章,指导Inter片段通信。 如果您不想实现接口,则可以使用Eventbus。一个好的图书馆是Otto

答案 1 :(得分:1)

在多个片段和活动想要彼此沟通的情况下,请记住两个选项。

  • Java Interfaces - 仅一个活动和一个或多个片段。每个片段都应该实现自己的接口。活动也用于它们之间的共享通道。的 Recommended

enter image description here 图片来源:https://stackoverflow.com/a/24083101/1841194

  • Local broadcasts - 可用于多种活动和服务。这也可用于片段之间的通信。