フラグメントを拡張する PatientList クラスと、ActionBarActivity を拡張する他の AddPatient クラスがあります。ここで、PatientList から AddPatient に静的文字列を渡し、null を取得したいと考えています。問題はどこですか?? なぜそれがnullになっているのですか???
2 に答える
0
@sherpya によって提案されたダーク マジックの代わりに、http: //developer.android.com/training/basics/fragments/communicating.html で Google によってどのように行われているかを確認する必要があります。
具体的なアクティビティへの依存関係を作成するのではなく、そのためのインターフェイスを作成する必要があります。後でこのフラグメントを別の Activity で再利用することにした場合はどうなりますか? 同じ場合、イベント バスhttp://square.github.io/otto/を使用できます。
于 2014-03-13T07:15:58.620 に答える
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 に答える