我有扩展片段的 PatientList 类和扩展 ActionBarActivity 的其他 AddPatient 类。现在我想将静态字符串从 PatientList 传递给 AddPatient,然后它会变为 null。问题出在哪里?为什么它变得空了???
问问题
451 次
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 回答