我到处搜索,也有类似的帖子,但找不到解决方案!
我的情况是我有一个包含 a 的 Activity A fragment
,并且fragment
我想从那里开始一个新的Activity
B ,它应该将一些值返回给fragment
.
在fragment
startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);
在Activity
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
fromfragment
被成功调用,with right requestCode
butresultCode
始终为 0,intent 始终为null
。
我在A下没有其他onActivityResult
实现。Activity
事实上,我也尝试activity
从fragment
with
开始getActivity().startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);
并onActivityResult
在Activity
A 上实施,但它发生相同,正确requestCode
但错误resultCode
and intent
。
我正在使用Sherlock Action Bar
所以我fragment
是一个SherlockListFragment
所以我正在使用support library (r18)
.
你能帮助我吗?谢谢