Hi there I am calling an startActivityForResult() and trying to process the result in the onAcvityResult() method. However, the Intent data is null and result is RESULT_CANCELED. I am not sure why though.
I am creating activity with:
startActivityForResult(new Intent(this, Class.class),LIST_RESULT);
then in the Activity class
@Override
public void onBackPressed() {
super.onBackPressed();
Intent data = new Intent();
Bundle bundle = new Bundle();
bundle.putParcelable("name", la);
data.putExtras(bundle);
if (getParent() == null) {
setResult(Activity.RESULT_OK, data);
} else {
getParent().setResult(Activity.RESULT_OK, data);
}
//finish();
}
finish() has no effect. In fact I get warning in LogCat that duplicate finish request HistoryRecord
And I am processing the result in:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case(LIST_RESULT):
if(resultCode == Activity.RESULT_OK) {
previousList = data.getExtras();
}
break;
}
}
data is null and the resultCode is the Action.RESULT_CANCELED.
Any ideas why I am not getting any through? Is something changing it in between me setting it and reading it? The mParent is also null in the activity that returns result.
Alex
Whether its an image Bitmap from Camera app or its a Image from the gallery, or maybe its some custom result from your some other Activity of app, Android system will call onActivityResult () method in the original requesting Activity or Fragment class.
This intent ends up bubbling up to call RNAppAuthModule.onActivityResult in this library. The intent is set to null. to join this conversation on GitHub .
Traditional Way — The onActivityResult () Method Whether its an image Bitmap from Camera app or its a Image from the gallery, or maybe its some custom result from your some other Activity of app, Android system will call onActivityResult () method in the original requesting Activity or Fragment class.
And the parseResult () method will behave as a proxy for onActivityResult () method and is parsing the result Intent and extracting the data from it. You can see that we don’t need to put bunch of if-else blocks in onActivityResult () method anymore.
Alex,
I think you want to remove the called to finish()
in your onBackPressed()
method, and replace it with the call to super.onBackPressed()
. I believe the call to super.onBackPressed()
is calling finish and you are never getting a chance to call setResult()
.
Try...
@Override
public void onBackPressed() {
Intent data = new Intent();
Bundle bundle = new Bundle();
bundle.putParcelable("name", la);
data.putExtras(bundle);
if (getParent() == null) {
setResult(Activity.RESULT_OK, data);
} else {
getParent().setResult(Activity.RESULT_OK, data);
}
super.onBackPressed();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With