在片段和父活动之间进行通信

时间:2017-02-04 11:20:24

标签: android android-fragments xamarin.android

我有一个带有列表视图的片段,用户可以选择该列表中的项目。每当至少有一个项目处于选定状态时,我想透露一个"删除" 父活动上的工具栏按钮。我是否只是从片段中提出一个事件来实现这个目标?

如何删除 - 活动或片段应该对此负责吗?无论哪种方式,活动都需要以某种方式要求片段进行删除,或要求它重新加载列表(如果活动进行删除)。

真正寻找这种活动/片段通信的最佳实践,并减少耦合(可能是接口也会起作用)。

对于第二个(相关的)问题,我的片段目前负责从数据库中检索列表的项目,但是在我读过的一本书中,它们显示了这样做的活动,然后通过片段的项目。每种方法的优缺点是什么?

1 个答案:

答案 0 :(得分:2)

作为对所有子问题的回答,保持类松散耦合并使用EventBus链接它们是理想的方法!

EventBus允许组件之间的发布 - 订阅式通信,而不需要组件彼此显式注册(因此彼此了解)。它专门用于使用显式注册替换传统的Java进程内事件分发。

这使您可以无缝地将数据作为事件传递给多个类,并从多个其他类中侦听这些事件。要查看用法,请参阅此Answer