Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将数据从片段传递到ActionBarActivity?_Android_Android Fragments_Android Actionbar Compat_Pass Data - Fatal编程技术网

Android 如何将数据从片段传递到ActionBarActivity?

Android 如何将数据从片段传递到ActionBarActivity?,android,android-fragments,android-actionbar-compat,pass-data,Android,Android Fragments,Android Actionbar Compat,Pass Data,我有一个PatientList类扩展了fragment,还有一个AddPatient类扩展了ActionBarActivity。现在我想将静态字符串从PatientList传递到AddPatient,然后它将变为null。问题出在哪里??为什么它是空的 不确定我是否理解,但您可以在AddPatient和PatientList中添加方法调用((AddPatient)getActivity())。您的方法(字符串) 在添加患者中: public receiveString(String mystri

我有一个PatientList类扩展了fragment,还有一个AddPatient类扩展了ActionBarActivity。现在我想将静态字符串从PatientList传递到AddPatient,然后它将变为null。问题出在哪里??为什么它是空的

不确定我是否理解,但您可以在
AddPatient
PatientList
中添加方法调用
((AddPatient)getActivity())。您的方法(字符串)

添加患者中

public receiveString(String mystring)
{
    // do whatever with mystring
}
患者列表中
需要的位置,例如onClick或其他

((AddPatient) getActivity()).receiveString("hello")
如果要将数据传递给某个活动,则应该从startActivity()开始(如果在片段中)

AddPatient

private String mMyString;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.yourlayout);
    mMyString = getIntent().getStringExtra("param_string");
}

您可以多次添加整数、字符串和可序列化的内容,而不是@sherpya提出的一些黑魔法。您应该在

您应该为此创建一个接口,而不是创建对具体活动的依赖。如果您稍后决定在另一个活动中重用此片段,该怎么办?
在同样的情况下,你可以使用一些事件总线

你可以在
PatientList
中调用该代码,有效地在
AddPatient
中传递字符串,有什么问题吗?我添加了将字符串从一个活动片段传递到另一个活动的代码,它与我在应用程序中使用的代码完全相同,并且一直有效,确保你没有做不同的事情
private String mMyString;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.yourlayout);
    mMyString = getIntent().getStringExtra("param_string");
}