android - 如何在嵌套 fragment 中的两个子 fragment 之间进行通信

标签 android interface fragment

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

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

 @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()

最佳答案

转换是为了确保某个对象是实现给定接口(interface)的类的实例(在本例中为 OnHeadlineSelectedListener)。在这一点上,它是什么类型的对象是无关紧要的,无论是 Activity 、 fragment 还是其他任何东西。只要它实现了你需要的接口(interface),就没问题。

关于android - 如何在嵌套 fragment 中的两个子 fragment 之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197604/

相关文章:

Java:OOP概念、抽象类、接口(interface)

c# - 抽象基类还是接口(interface)?两者都不对

android - fragment 中的数据处理

android - fragment - 实例化异常 : no empty Constructor -> Google Maps v2?

Android SDK 工具修订版 22 问题?

java - TwoWayView android 库如何设置边距(图像之间的间距)? setItemMargin() 不起作用

java - Bukkit - 为什么转换为 Damageable 有效?

android - findViewById 在 PreferenceFragment 的 onViewCreated 中失败,Android

java - AsyncTask.execute() 不等待 doInBackground 完成

Android守护进程