The hosting activity overrides
onActivityResult(), but it did not make a call to
super.onActivityResult() for unhandled result codes. Apparently, even though the fragment is the one making the
startActivityForResult() call, the activity gets the first shot at handling the result. This makes sense when you consider the modularity of fragments. Once I implemented
super.onActivityResult() for all unhandled results, the fragment got a shot at handling the result.
And also from @siqing answer:
To get the result in your fragment make sure you call
startActivityForResult(intent,111); instead of
getActivity().startActivityForResult(intent,111); inside your fragment.