如何在嵌套片段内的两个子片段之间进行通信

Posted

技术标签:

【中文标题】如何在嵌套片段内的两个子片段之间进行通信【英文标题】:How to communicate between two child Fragments inside a Nested Fragment 【发布时间】:2013-08-14 09:23:08 【问题描述】:

我可以通过回调interface 轻松地在活动的两个fragments 之间进行通信。按照这种方式,我在ParentFragment中实现了一个接口来进行通信。

但在活动的情况下,我使用的是 -

 @Override
    public void onAttach(Activity activity) 
        super.onAttach(activity);
        try 
            mCallback = (OnHeadlineSelectedListener) activity;
         catch (ClassCastException e) 
            throw new ClassCastException(activity.toString()
                    + " must implement OnHeadlineSelectedListener");
        
    

在当前情况下,我使用mCallback = (OnHeadlineSelectedListener) getParentFragment(); 而不是mCallback = (OnHeadlineSelectedListener) activity;。一切运作良好。这种方法好吗?或者我应该在另一个线程中而不是onAttach()

【问题讨论】:

【参考方案1】:

强制转换是确保某个对象是实现给定接口的类的实例(在本例中为OnHeadlineSelectedListener)。在这一点上,它是什么类型的对象是无关紧要的,它是活动、片段还是其他任何东西。只要实现了你需要的接口就可以了。

【讨论】:

以上是关于如何在嵌套片段内的两个子片段之间进行通信的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kotlin 片段内的按钮之间切换片段?

共享元素转换在父片段和子片段之间不起作用(嵌套片段)

如何使用接口在片段和活动之间进行通信?

从外部片段内的 FragmentTabHost 的子片段添加新的选项菜单

在tablayout片段之间进行通信[重复]

在片段和活动之间进行通信 - 最佳实践