3

各ページがフラグメントであるビューページャーがある場合。そして、それらのフラグメントのいくつかは、他のビュー/アクティビティを開始したいので、それらのすべての要求を親アクティビティに渡す必要があります。したがって、ビューページャーのすべてのページについて、新しいアクティビティを開始するためのすべての要求と、フラグメントに戻す必要のあるすべての結果は、1つのメインアクティビティを通過します。これは厄介になるようです。これを処理するより良い方法はありますか?

ありがとう

4

1 に答える 1

3

したがって、ビューページャーのすべてのページについて、新しいアクティビティを開始するためのすべての要求と、フラグメントに戻す必要のあるすべての結果は、1つのメインアクティビティを通過します。

あなたFragmentsは彼らの親のライフサイクルで生きて死ぬのでActivity、はい、彼らは他の人から結果を受け取り始めるために彼らの親を使わなければなりませんActivities

API 11以降、および最新のサポートライブラリでは、これらのメソッドを内部から呼び出すことができFragments、それらは親から実行さActivityれます。

    Intent intent = new Intent(getActivity(), SomeActivityToStart.class);
    startActivity(intent);

内でforresultを開始することもできActivityますFragments

    Intent intent = new Intent(getActivity(), SomeActivityToStart.class);
    startActivityForResult(intent, REQUEST_CODE);

次に、をオーバーライドonActivityResult(int requestCode, int resultCode, Intent data)してFragment、親から結果を取得しますActivity

これは厄介になるようです。これを処理するより良い方法はありますか?

Activity親子のコミュニケーションをFragment自分で管理する必要がないので、面倒くさいことはないと思います。

これらのメソッドのリファレンスについては、http://developer.android.com/reference/android/app/Fragment.htmlを確認してください。

于 2013-02-04T14:08:01.457 に答える