使用回调在两个片段之间传递数据

时间:2014-12-05 16:26:25

标签: android android-fragments

我尝试使用回调将数据从一个片段传递到另一个片段,但我很难做到这一点。在我的活动中,我调用片段A,调用片段B。在片段B中,我选择了一个项目,我需要将该项目传递给片段A。有人可以告诉我该怎么做?

我知道通过回调我可以从片段B获取数据到活动,但是如何将该数据发送到片段A并保持该片段的状态?

2 个答案:

答案 0 :(得分:2)

为什么不使用Activity作为“流量控制器”:Fragment回调Activity然后Activity调用Fragment B.保持碎片分离,使他们彼此不知道。

答案 1 :(得分:2)

您的活动应该实现回调,然后回调可以找到片段B并将数据发布到其公共方法之一。如果你让片段B中的公共方法接受你需要的任何数据,你应该能够直接传递它。

这样的事情:

@Override
public void onCallback(String data) {
    FragmentB frag = (FragmentB) getSupportFragmentManager().findFragmentByTag(FragmentB.class.getSimpleName());
    if (frag != null) {
        frag.myMethod(data);
    }
}