0

我正在阅读“与其他片段通信”

它写道:

要允许 Fragment 与其 Activity 进行通信,您可以在 Fragment 类中定义一个接口并在 Activity 中实现它。Fragment 在其 onAttach() 生命周期方法期间捕获接口实现,然后可以调用接口方法以与 Activity 通信。

我的问题是:

为什么 Fragment 不直接实现其关联活动的方法,而不是使用接口?使用接口作为 Fragment 及其关联 Activity 之间的媒体有什么好处?

例如,另一种通信方式可以是:在Fragment类中,在onListItemClick()中,我可以直接使用activity.onArticleSelected(position),而不是mCallback.onArticleSelected(position);

4

1 回答 1

0

在某些情况下,片段可能会失去与活动的关联。我在使用文件选择器时遇到了特殊异常。在这种情况下,您无法根据片段找到任何活动。所以谷歌可能只希望您在片段的 onAttach() Taclifecycle。

于 2014-02-19T04:36:50.960 回答