我想在两个片段之间传递数据,而不使用activity和fragment activity。
我不想使用如下活动在片段之间传递数据:Communicating with Other Fragments
下面是我的场景:
我有一个Parent片段,里面有两个子片段。现在我需要在这两个片段之间传递数据。如何实现这一点?
我调查了这个:Event Bus,但无法取得片段的工作范例。
是否有其他替代方法可以在片段之间传递数据?
任何帮助都将不胜感激。
根据InnocentKiller的回答进行编辑:
在FragmentOne中,我实现了:
FragmentTwo = new FragmentTwo();
Bundle bundle = new Bundle();
bundle.putString("Hello", "My name is Siddharth");
fragment.setArguments(bundle);
在FragmentTwo中,我实现了:
Bundle bundle = this.getArguments();
String myInt = bundle.getString("Hello","Test");
mStartTripButton.setText(myInt);
3条答案
按热度按时间mbyulnm01#
在Activity/fragment、fragment/fragment/、Activity/Activity、class/ class之间交换数据的最佳方式,创建一个公共的单例类,如下所示:
现在在任何事件中的任何位置(片段、活动、类)设置,然后再移动到新屏幕
现在随处可见(片段、活动、类)
kzmpq1sx2#
您可以使用EventBus https://github.com/greenrobot/EventBus在Android中传递任何复杂的对象。
将对象从一个“活动”传递到另一个“活动”得示例:
在EventBus上添加对象:
某个活动中的任何位置:
这个例子只是为了说明它可以跨Activity工作,你可以调用
getStickyEvent
来获取代码中任意位置的anyObject。因此,您可以在片段A中发布一个对象,并在片段B中使用getStickyEvent来检索它。
如果你有很多参数和/或复杂的对象要从一个地方移动到另一个地方,这是特别方便的。只需创建一个包含参数的getter/setter的“保持器”对象,然后沿着。这比分别传递它们并以某种方式序列化复杂对象要简单得多。
kxkpmulp3#
我认为你是试图从一个片段传递数据到另一个片段,所以尝试使用下面的代码.
使用一个捆绑包,所以写下面的代码在第一个片段中,从那里你想发送数据.
并检索数据,请在其他片段中使用以下代码