如何从一个活动的片段发送一些数据到另一个活动的另一个片段
我已经阅读了很多链接,但都是将数据从一个片段传递到另一个活动或从一个活动传递到其他活动的片段,但是我想从片段的一个活动到另一个活动的其他片段如何从一个活动的片段发送一些数据到另一个活动的另一个片段
除非我失去了一些东西,你可以从第一个Fragment调用getActivity().startActivity()
,并在该Intent上设置一些extras,然后从第二个Activity中将一些参数传递到Fragment中创建。
所以,从FragmentA
Intent i = new Intent(getActivity(), ActivityB.class);
i.setExtra("key", "hello world"); // for example
getActivity().startActivity(i);
然后,ActivityB
onCreate() {
Intent i = getIntent();
FragmentB frag = new FragmentB();
if (i!=null) frag.setArguments(i); // pass along intent
// TODO load Fragment
而且使用在FragmentB
是的这将有助于如果你能分享 – Ayaz
好吧,我在手机上, t测试它,但应该类似于你在参考的例子中看到的代码 –
如果你要通过DATAS各地的应用程序或可能远远活动之间/片段就像在你的例子中,考虑使用一些静态类(即使在java中没有静态类,它更多的是一个静态的字段包装)。现在
public class MyRunTimeDatas{
private static String myStringData;
private static int myIntData;
//getters and setters
}
,在fragment 1
使用
MyRunTimeDatas.setMyStringData("my value");
MyRunTimeDatas.setMyIntData(69);
终于在fragment 2
现在就可以拨打
String myBeautifulString = MyRunTimeDatas.getMyStringData();
int myFantasticInt = MyRunTimeDatas.getMyIntData();
和你做
据我所知,你共享的方法是在同一活动中将数据从一个片段传输到另一个片段......但在我的情况下,它是不同活动的片段@ Pier Giorgio Misley – Ayaz
@Ayaz - 这是一个数据访问对象。由于变量是静态的,因此它们位于应用程序内存中,可以在任何类中访问。 –
@Ayaz这是cricket_007说:这是一个单独的类(一个单独的.java文件),所以它意味着你可以从任何类的应用程序访问它 –
好吧......如果你可以通过Fra分配给一个Activity,一个Activity分配给一个Fragment,那么你可以通过Activity从一个Fragment传递到另一个Fragment,对吧? –
是的,我可以做到这一点,但这是唯一的方法..我的意思是没有任何其他直接[email protected]_007 – Ayaz
你可以尝试查看EventBus库。就个人而言,还没有尝试过,但很多人推荐它 –