I searched all over and there are similar posts about it, but can't find a solution!
My situation is I have an Activity A that holds a fragment
, and from that fragment
I want to start a new Activity
B that should return some values to the fragment
.
On the fragment
startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);
On the Activity
B, to return the data
Intent returnIntent = new Intent();
returnIntent.putExtra(SerializationConstants.isSearchSaved, mAbItemsShown.ordinal());
setResult (ConstantsUtils.SUCCESS_RETURN_CODE, returnIntent);
finish();
On the fragment
@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
from the fragment
is successfully called, with the right requestCode
but resultCode
is always 0 and intent is always null
.
I have no other onActivityResult
implementation under Activity
A.
In fact, I also try starting the activity
from the fragment
with
getActivity().startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);
and implementing onActivityResult
on Activity
A but it happens the same, right requestCode
but wrong resultCode
and intent
.
I'm using Sherlock Action Bar
so my fragment
is a SherlockListFragment
so I'm using the support library (r18)
.
Can you help me? Thanks
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…