【发布时间】:2014-07-21 14:35:40
【问题描述】:
在片段 A 中,我具有检索 url 的功能 在片段 B 中,我具有继续并显示 url 的功能。
片段 A 如何告诉片段 B 有新数据要处理,其中 2 个片段并排放置?
【问题讨论】:
在片段 A 中,我具有检索 url 的功能 在片段 B 中,我具有继续并显示 url 的功能。
片段 A 如何告诉片段 B 有新数据要处理,其中 2 个片段并排放置?
【问题讨论】:
你需要定义一个接口,并在接口中调用一个方法。另一个片段将实现该接口,当方法被调用时,您将调用您需要的方法。
希望对你有帮助。
编辑:
这是我建议的一种方法。在我的场景中,FragmentA 是调用您的方法的那个,而 FragmentB 是包含该方法的那个。
在你的fragmentA中定义这个接口
public interface FragmentContainer {
void onMethodThatYouWantToBeFired();
}
在 onAttach 中,执行以下操作:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
Fragment parentFragment = getParentFragment();
if (parentFragment == null) {
mFragmentContainer = (FragmentContainer) activity;
} else {
mFragmentContainer = (FragmentContainer) parentFragment;
}
}
让你的activity实现YourFragment.FragmentContainer并覆盖方法void onMethodThatYouWantToBeFired();
当此方法被触发时,调用在 FragmentB 中注册的侦听器。当监听器被触发后,就可以调用 FragmentB 中你感兴趣的方法了。
希望对你有帮助。
【讨论】:
片段是用来重复使用的……也就是说,两个片段不应该直接在彼此之间传递数据。相反,您应该在 Activity 中定义 callback method。这将确保您可以在需要时在应用程序的其他地方(以及您制作的其他应用程序)中重复使用您的片段。
【讨论】: