我可以通过回调接口(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/