我搜遍了所有關於它的類似帖子,但無法找到解決方案!片段startActivityForResult總是返回resultCode 0和intent null回調onActivityResult
我的情況是我有一個活動A持有一個片段,並從該片段我想開始一個新的活動B應該返回一些值的片段。
在片段
startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);
在活動B,返回數據
Intent returnIntent = new Intent();
returnIntent.putExtra(SerializationConstants.isSearchSaved, mAbItemsShown.ordinal());
setResult (ConstantsUtils.SUCCESS_RETURN_CODE, returnIntent);
finish();
在片段
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
switch (requestCode) {
case ConstantsUtils.TOMAP_REQUEST_CODE:
if (resultCode == ConstantsUtils.SUCCESS_RETURN_CODE) {
//do some stuff
}
}
}
從片段onActivityResult調用成功,與right requestCode,但resultCode始終爲0,意圖始終爲空
我有下活動沒有其他onActivityResult執行甲
事實上,我也開始嘗試從所述片段的活性與 getActivity()startActivityForResult(mapIntent,ConstantsUtils.TOMAP_REQUEST_CODE)。 和實施onActivityResult上的活動A,但它發生的一樣吧requestCode但錯resultCode爲和意圖
我使用的是福爾摩斯行動吧,所以我的片段是SherlockListFragment所以我使用了支持庫(R18)
你能幫我嗎?謝謝
我不知道你的'super.onActivityResult(requestCode,resultCode,intent)'是什麼''。在我看來,沒有必要。另外,您的request_code需要大於等於0,因爲它提及[here] [doc] [doc]:http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content。意圖,詮釋) –
超級不是必要的,我只是想看看問題是否因爲它,但如果我不把它放在同一個結果。常量SUCCESS_RETURN_CODE的值爲1,但是與Activity.RESULT_OK相同。 – nirvik
看起來像在ActivityB中的其他位置調用finish()。調用'finish()'而不設置結果代碼和結果數據會導致你正在描述的行爲。無論是那個或ActivityB崩潰,這將做同樣的事情。 –