-1

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

4

2 回答 2

0

不确定我是否理解,但您可以AddPatient在通话中和PatientList通话中添加方法((AddPatient) getActivity()).yourmethod(string)

AddPatient

public receiveString(String mystring)
{
    // do whatever with mystring
}

PatientList需要的地方,例如 onClick 什么的

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

如果您想将数据传递给您从 startActivity() 开始的活动,则应该执行类似的操作(如果您在片段内)

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");
}

您可以多次添加整数、字符串和可序列化的东西

于 2014-03-13T06:44:45.840 回答
0

而不是@sherpya 提出的一些黑魔法,您应该在http://developer.android.com/training/basics/fragments/communicating.html上查看谷歌是如何完成的

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

于 2014-03-13T07:15:58.620 回答