startActivityForResult() from a Fragment and finishing child Activity, doesn't call onActivityResult() in Fragment startActivityForResult() from a Fragment and finishing child Activity, doesn't call onActivityResult() in Fragment android android

startActivityForResult() from a Fragment and finishing child Activity, doesn't call onActivityResult() in Fragment


You must write onActivityResult() in your FirstActivity.Java as follows

@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {   super.onActivityResult(requestCode, resultCode, data);}

So this will call your fragment's onActivityResult()

Edit: the solution is to replace getActivity().startActivityForResult(i, 1); with startActivityForResult(i, 1);


Kevin's answer works but It makes it hard to play with the data using that solution.

Best solution is don't start startActivityForResult() on activity level.

in your case don't call getActivity().startActivityForResult(i, 1);

Instead, just use startActivityForResult() and it will work perfectly fine! :)


You must write onActivityResult() in your FirstActivity.Java as follows

@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {    for (Fragment fragment : getSupportFragmentManager().getFragments()) {        fragment.onActivityResult(requestCode, resultCode, data);    }}

This will trigger onActivityResult method of fragments on FirstActivity.java