Wrong requestCode in onActivityResult

android, android-fragments, onactivityresult

Solution

You are calling `startActivityForResult()` from your `Fragment`. When you do this, the `requestCode` is changed by the `Activity` that owns the `Fragment`.

If you want to get the correct `resultCode` in your activity try this:

Change:

startActivityForResult(intent, 1);

To:

getActivity().startActivityForResult(intent, 1);

Problem

I'm starting a new Activity from my Fragment with ``` startActivityForResult(intent, 1); ``` and want to handle the result in the Fragment's parent Activity: ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "onActivityResult, requestCode: " + requestCode + ", resultCode: " + resultCode); if (requestCode == 1) { // bla bla bla } } ``` The problem is that I never got the `requestCode` I've just posted to `startActivityForResult()`. I got something like `0x40001`, `0x20001` etc. with a random higher bit set. The docs don't say anything about this. Any ideas?

Original source

Related problems