0

叫我的下一個UI hierarhy:onActivityResult()永遠不會在嵌套活動

FragmentActivity - >FragmentTabHost和LocalActivityManager - > MyNestedActivity

MyNestedActivity地方單選項卡Fragment。當我在MyNestedActivity中撥打startActivityForResult()時,Activity正常啓動,但從未調用過onActivityResult()

但是,如果我打開MyNestedActivity使用startActivity(),onActivityResult()工作正常。

當我必須掛鉤onActivityResult()?在FragmentActivityFragment?我該如何將結果發送給MyNestedActivity?

解決:

在這個UI hierarhy onActivityResult()不叫。我只是將MyNestedActivity更改爲Fragment,我的等級變爲FragmentActivityFragment。現在onActivityResult()工作正常。

+0

我想你的onActivityresult正在被你的父母活動所採取,通過採取日誌。 – 2012-04-26 06:22:12

回答

2

onActivityResult()嵌套Activity不能通過Android調用。

正確的方式來獲得活動結果在嵌套的活動是:

  1. startActivityForResult()從主機Activity(!不是從嵌套),

  2. 收到Activity導致主機Activity

  3. 調度Activity結果嵌套Activity

+0

Hi @Flexo,我們如何將活動結果分派給嵌套活動? – heyjii 2012-08-22 08:47:14

+0

@heyjii,從您的父母活動調用startActivity,並在父活動中接收結果。然後將結果傳遞給嵌套活動。 – Nik 2012-08-22 08:54:09

+0

這是一個非常好的主意 - 通過重新分配頂層來解決嵌套調用。我剛剛遇到了嵌套意圖的問題 - 當您使用startActivityForResult並將「意向」返回給父項時,嵌套返回有時會失去意圖。 Upvote for you! – 2012-12-11 22:15:54

0

如果你想從片段中調用startActivityForResult(),你必須在Fragment類中設置onActivityResult()方法,而不是在主機Activity中。有關更多信息,請參見this link

+0

這不適用於我的情況。 – Nik 2012-04-27 06:30:41

+0

好的,我可能誤解了你的問題。對不起。但這對我有以下UI層次結構:活動託管一個片段。 – 2012-04-27 10:05:24

+0

是的,如果活動託管一個片段,但它在分段託管活動時不起作用! – Nik 2012-04-28 08:35:10