如何将一些活动的片段中的一些数据发送到另一个活动的另一个片段

时间:2016-09-22 12:37:59

标签: android android-fragments android-activity fragment android-fragmentactivity

我已阅读了许多链接,但所有链接都将数据从一个片段传递到另一个活动或从一个活动传递到其他活动的片段但我想从一个活动的片段发送到另一个活动的其他片段

2 个答案:

答案 0 :(得分:0)

除非我遗漏了某些内容,否则你可以从第一个片段调用getActivity().startActivity(),在该Intent上设置一些额外内容,然后从第二个Activity中将一些参数传递给它创建的片段。

所以,来自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中使用getArguments()

答案 1 :(得分:0)

如果必须在整个应用程序中传递数据,或者在示例中传递远程活动/片段之间的数据,请考虑使用一些静态类(即使在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();

你完成了