2012-12-01 16 views
25

我有一個活動,我使用startActivityForResult(intent,634)。如果我從活動中使用它,則onActivityResult()中的requestCode爲OK。但是如果我在本Activity的DialogFragment中使用startActivityForResult(intent,634),我會得到另一個requestCode,類似66170.那麼爲什麼它會發生?我爲什麼會收到錯誤的requestCode?

回答

40

發生這種情況的原因是,如果您使用對話框中的startActivityForResult,則在onActivityResult中將獲得對話框的requestCode。不是從你的另一個活動。如果你想得到正確的requestCode,你應該在DialogFragment中使用getActivity().startActivityForResult(intent,requestCode)

+13

有沒有這樣的事情,愚蠢的問題 – vodich

+1

不愚蠢的。我遇到了完全相同的問題。這是非常混亂的行爲。 – ajselvig

+0

我從一個片段調用StartActivityForResult時遇到了類似的問題 –

相關問題