如何将Activity中的数据传递给fragment中的片段
问题描述:
我有一个Activity
。它动态地添加Fragment A
。 Fragment A
包含添加静态(由xml)子Fragment B
。当我将Fragment A
添加到Activity
时,如何将数据从Activity
传递到Fragment B
?
我知道接下来的做法:
在Activity
实现接口的getter和从Fragment B
调用getter方法我想知道,是有另一种方式来做到这一点?
我试过一套参数从Activity
至Fragment A
,由子片段经理找到Fragment B
并设置参数从Fragment A
到Fragment B
。 但Fragment B
早于Fragment A
创建,所以我有例外..如何将Activity中的数据传递给fragment中的片段
答
那么有多种方法可以实现。其中一种方式是 在您的分片B中创建一个函数public void setData(Data data)
将您的数据从活动转移到片段A.由于您的片段B是通过xml中的片段标记添加的。创建裁判在片段A.你的片段B的对象现在你已经在A中的参考片段B
现在只需拨打片段A的功能(在片段B创建),并通过您已被接收的数据活动
其他方式..
在片段B可以调用getActivity(),然后键入投它在你的活动类的类型,并调用其方法,可以返回所需的数据
答
你可以尝试EventBus从活动数据传递到您的片段B.在你的活动调用此EventBus.getDefault().post(new MessageEvent());
然后你只需要在片段的onCreateView乙
EventBus.getDefault().register(this);
注册EventBus
然后
@Subscribe
public void onEvent(MessageEvent event){
// DO SOMETHING
}
谢谢我已经自己实施了拳头方式了。我在片段B的onAttachFragment(片段子片段)方法中获得片段B参考 – Dima