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

时间:2014-03-13 06:41:22

标签: android android-fragments android-actionbar-compat pass-data

我有PatientList类,它扩展了片段和扩展ActionBarActivity的其他AddPatient类。现在我想从PatientList传递静态字符串到AddPatient然后它变为null。问题是什么?为什么它变空?

2 个答案:

答案 0 :(得分:0)

不确定我是否理解,但您可以在AddPatientPatientList来电((AddPatient) getActivity()).yourmethod(string)内添加方法

AddPatient中的

public receiveString(String mystring)
{
    // do whatever with mystring
}
在需要的PatientList

onClick或其他东西

((AddPatient) getActivity()).receiveString("hello")

如果你想将数据传递给一个以startActivity()开头的Activity而不是你应该做的事情(如果你在片段里面)

Intent intent = new Intent(getActivity(), AddPatient.class);
intent.putExtra("param_string", mystring)
getActivity().startActivity(intent);
AddPatient

中的

private String mMyString;

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

你可以多次添加Integer,Strings和Serializable东西

答案 1 :(得分:0)

而不是@sherpya提出的一些黑暗魔法你应该检查谷歌在http://developer.android.com/training/basics/fragments/communicating.html

的做法。

您应该为其创建一个接口,而不是根据具体的Activity创建依赖关系。如果您稍后决定在另一个Activity中重用此片段,该怎么办? 在相同的情况下,您可以使用一些事件总线http://square.github.io/otto/