我尝试使用回调将数据从一个片段传递到另一个片段,但我很难做到这一点。在我的活动中,我调用片段A
,调用片段B
。在片段B
中,我选择了一个项目,我需要将该项目传递给片段A
。有人可以告诉我该怎么做?
我知道通过回调我可以从片段B
获取数据到活动,但是如何将该数据发送到片段A
并保持该片段的状态?
答案 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);
}
}