片段实现——以google的文档为例

Fragment implementation - Using google's document as an example

我正在阅读 google 开发人员关于 Fragment 实现的文章。我被困在 session “Creating event callbacks to the activity”.

中的某一点

表示当包含文章标题列表的Fragment A要与显示文章内容的Article Fragment通信时,Fragment A需要实现一个接口OnArticleSelectedListener。在托管这两个片段的activity中设置了监听器,监听器会向Article Fragment发送信息。

我的问题是,为什么我们不简单地在Article Fragment中实现一个接口来监听Fragment A的选择呢?我知道一定有原因,但我就是不明白。

我的尝试: 是因为我们在片段A中找不到对文章片段的引用吗?我们只能从托管中找到 Article Fragment 的引用 activity.

非常感谢。

碎片无法相互通信。 Activity 不仅是一个 Host,也是两个或更多 fragments 之间的中间人。

(取自developer.android.com) 虽然 Fragment 是作为独立于 Activity 的对象实现的,并且可以在多个活动中使用,但 Fragment 的给定实例直接绑定到包含它的 activity。

在某些情况下,您可能需要一个片段来与 activity 分享事件。一个好的方法是在片段内定义一个回调接口,并要求宿主 activity 实现它。当activity通过接口接收到回调时,它可以根据需要与布局中的其他片段共享信息。