我搜遍了所有关于它的类似帖子,但找不到解决方案!
我的情况是我有一个活动A,它持有一个fragment,并且从那里fragment我想开始一个新的ActivityB应该返回一些值fragment.
在 fragment
startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
在ActivityB上,返回数据
Intent returnIntent = new Intent();
returnIntent.putExtra(SerializationConstants.isSearchSaved, mAbItemsShown.ordinal());
setResult (ConstantsUtils.SUCCESS_RETURN_CODE, returnIntent);
finish();
Run Code Online (Sandbox Code Playgroud)
在片段上
@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
}
}
}
Run Code Online (Sandbox Code Playgroud)
onActivityResult从fragment成功调用,有权requestCode但resultCode总是0,意图总是null.
我onActivityResult在ActivityA 下没有其他实现.
其实,我也试着开始activity从fragment与
getActivity().startActivityForResult(mapIntent, …