1. ホーム
  2. android

[解決済み] start fragment for resultのように動作するメソッドはありますか?

2022-12-07 21:37:59

質問

現在、オーバーレイの中にフラグメントがあります。これは、サービスにサインインするためのものです。電話アプリでは、オーバーレイで表示したい各ステップは、それぞれ独自の画面とアクティビティです。サインイン プロセスには 3 つの部分があり、それぞれには startActivityForResult() で呼び出される独自のアクティビティがありました。

今度は、フラグメントとオーバーレイを使用して同じことをしたいと思います。オーバーレイは、各アクティビティに対応するフラグメントを表示します。問題は、これらのフラグメントが Honeycomb API のアクティビティでホストされていることです。最初のフラグメントは動作させることができますが、その後、startActivityForResult()を実行する必要がありますが、これは不可能です。新しいフラグメントをキックオフし、それが完了したときに前のフラグメントに結果を返すことができるstartFragmentForResult()の線に沿って何かがありますか?

どのように解決するのですか?

フラグメントはすべてアクティビティ内に存在します。結果のためにFragmentを起動することはあまり意味がありません。なぜなら、Fragmentを収容するActivityは常にFragmentにアクセスしており、その逆もまた然りだからです。フラグメントが結果を受け渡す必要がある場合は、そのフラグメントのActivityにアクセスして結果を設定し、終了させることができます。一つのActivityでFragmentを入れ替えた場合でも、Activityには両方のFragmentがアクセスでき、メッセージの受け渡しはActivityを経由して行われます。

フラグメントとActivityの間には常に通信がある、ということだけ覚えておいてください。アクティビティは必要な情報をフラグメントに委譲することができます。