-1

フラグメントを拡張する PatientList クラスと、ActionBarActivity を拡張する他の A​​ddPatient クラスがあります。ここで、PatientList から AddPatient に静的文字列を渡し、null を取得したいと考えています。問題はどこですか?? なぜそれがnullになっているのですか???

4

2 に答える 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 に答える