In my fragment I have started startActivityforresult intent for photo capture.I have overridden onActivityResult callback method in fragment class. I have implemented onActivity
If you have onActivityResult defined in your Activity, you can't skip it and go directly to the Fragment. You can however redirect it to the Fragment if the Activity does not know how to handle it. Use unique requestCodes to differentiate between who handles the result.
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
boolean processed = true;
if (resultCode == Activity.RESULT_OK)
{
if (requestCode == 0) {
// Something
} else if (requestCode == 1) {
// Something
} else {
processed = false;
}
} else { // Error
if (requestCode == 0) {
// Handle error
} else {
processed = false;
}
}
if (!processed) {
fragment1.onActivityResult(requestCode, resultCode, data);
fragment2.onActivityResult(requestCode, resultCode, data);
...
super.onActivityResult(requestCode, resultCode, data);
}
}
Note: Make sure to call getActivity().startActivityForResult() from your fragment and not simply using this.startActivityForResult()
public void something(Intent intent) {
getActivity().startActivityForResult(intent);
// or if you are using SherlockActionBar/Support package
getSupportActivity().startActivityForResult(intent);
}
Hope this helps.