2017-07-08 110 views
0

我有一个Activity。它动态地添加Fragment AFragment A包含添加静态(由xml)子Fragment B。当我将Fragment A添加到Activity时,如何将数据从Activity传递到Fragment B

我知道接下来的做法:
Activity实现接口的getter和从Fragment B

调用getter方法我想知道,是有另一种方式来做到这一点?

我试过一套参数从ActivityFragment A,由子片段经理找到Fragment B并设置参数从Fragment AFragment B。 但Fragment B早于Fragment A创建,所以我有例外..如何将Activity中的数据传递给fragment中的片段

回答

2

那么有多种方法可以实现。其中一种方式是 在您的分片B中创建一个函数public void setData(Data data)

将您的数据从活动转移到片段A.由于您的片段B是通过xml中的片段标记添加的。创建裁判在片段A.你的片段B的对象现在你已经在A中的参考片段B

现在只需拨打片段A的功能(在片段B创建),并通过您已被接收的数据活动

其他方式..

在片段B可以调用getActivity(),然后键入投它在你的活动类的类型,并调用其方法,可以返回所需的数据

+1

谢谢我已经自己实施了拳头方式了。我在片段B的onAttachFragment(片段子片段)方法中获得片段B参考 – Dima

0

你可以尝试EventBus从活动数据传递到您的片段B.在你的活动调用此EventBus.getDefault().post(new MessageEvent());

然后你只需要在片段的onCreateView乙

EventBus.getDefault().register(this); 
注册EventBus

然后

@Subscribe 
public void onEvent(MessageEvent event){ 

    // DO SOMETHING 
} 
相关问题