如何从另一个片段启动方法?

时间:2014-07-21 14:35:40

标签: android fragment

在片段A中,我具有回溯网址的功能 在片段B中,我具有继续并显示URL的功能。

片段A如何告诉片段B有新数据要继续进行,其中2个片段并排放置?

2 个答案:

答案 0 :(得分:0)

碎片意味着要重复使用......也就是说,两个碎片不应该直接在彼此之间传递数据。相反,您应该在活动中定义callback method。这将确保您可以在应用程序的其他位置(以及您制作的其他应用程序中)重新使用您的片段。

答案 1 :(得分:0)

您需要定义接口并在接口中调用方法。另一个片段将实现该接口,当调用该方法时,您将调用所需的方法。

希望它有所帮助。

修改

这是我建议的approch。在我的场景中,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;
    }
}

让您的活动实现YourFragment.FragmentContainer并覆盖方法void onMethodThatYouWantToBeFired();
触发此方法时,请调用FragmentB中注册的侦听器。当侦听器被触发时,您可以调用您感兴趣的FragmentB中的方法。

我希望它可以帮到你。