我正在阅读谷歌开发者关于Fragment实现的文章。我被困在会议中的某一点" Creating event callbacks to the activity"。
它说片段A,其中包含一个文章列表'标题,想与Article Fragment进行通信,其中显示了文章的内容,Fragment A应该实现OnArticleSelectedListener接口。在托管两个片段的活动中设置监听器,监听器将信息发送到Article Fragment。
我的问题是,为什么我们不简单地在文章片段中实现一个界面来听片段A的选择?我知道必须有一个理由,但我只是不明白。
我的尝试: 是因为我们在片段A中找不到对文章片段的引用?我们只能从托管活动中找到文章片段的参考。
很多Thx。
答案 0 :(得分:2)
碎片无法相互通信。 Activity
不仅是主持人,还是两个或更多fragments
之间的中间人。
(取自developer.android.com) 尽管Fragment是作为一个独立于Activity的对象实现的,并且可以在多个活动中使用,但是片段的给定实例直接与包含它的活动相关联。
在某些情况下,您可能需要一个片段来与活动共享事件。一种好方法是在片段内定义一个回调接口,并要求主机活动实现它。当活动通过接口收到回调时,它可以根据需要与布局中的其他片段共享信息。