0

に呼び出すことはありません。 MyNestedActivityでstartActivityForResult()を呼び出すと、Activityは正常に起動しますが、一度も呼び出されなかったのはonActivityResult()です。onActivityResult()が、私は次のUI hierarhyを持つネストされた活動

しかし、startActivity()を使用してMyNestedActivityを開いた場合、onActivityResult()は問題ありません。

フックする必要があるときonActivityResult()FragmentActivityFragmentに?どのようにMyNestedActivityに結果をディスパッチする必要がありますか?

は解決:

ないと呼ばれるこのUIのhierarhy onActivityResult()で。私はただMyNestedActivityをFragmentに変更し、私の階層はFragmentActivity - >Fragmentになります。今すぐonActivityResult()がうまくいきます。

+0

あなたのonActivityresultがあなたの親アクティビティによって取られていると思います。ログを取るだけです。 –

答えて

2

onActivityResult() in nested Activity Androidで呼び出されません。

ネストされたアクティビティの活動結果を取得するための正しい方法は次のとおりです。

はホスト Activity(!ネストされていないから)から
  1. startActivityForResult()

  2. がホストActivityActivity結果を受け、

  3. ディスパッチActivity結果はネストされたActivityです。

+0

こんにちは@Flexo、どうやってネストされたアクティビティにアクティビティ結果をディスパッチできますか? – heyjii

+0

@heyjiiでは、親アクティビティからstartActivityを呼び出し、親アクティビティで結果を受け取ります。結果をネストされたアクティビティに渡します。 – Nik

+0

これは、非常に良いアイデアです - 激しいトップレベルをredispatchingすることで入れ子になっていないコールを解き放つ。私はちょうどネストされたインテントで問題に遭遇しました。あなたがstartActivityForResultを使用し、親にインテントを返すとき、ネストされたリターンは意図を失うことがあります。あなたのためにUpvote! –

0

startActivityForResult()をフラグメントから呼び出す場合は、ホストアクティビティではなく、フラグメントクラスでonActivityResult()メソッドを設定する必要があります。詳細については、this linkを参照してください。

+0

これは私の場合はうまくいきません。 – Nik

+0

私はあなたの問題を誤解しているかもしれません。申し訳ありませんが、これは私のために以下のUI階層で動作しました:断片をホストするアクティビティ。 –

+0

はい、アクティビティがフラグメントをホストする場合は機能しますが、フラグメントがアクティビティを実行する場合は機能しません! – Nik

関連する問題