I wonder if it's possible to handle data from e.g. activity 2 and activity 3 in activity 1 that have one onActivityResult()
, or do I need to have one method for each activity that return data?
Activity 1 is the main activity for the application.
Activity 1:
// Handle return value from activity
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
String imageId = data.getExtras().getString("imageId");
// Do something if data return from activity 2 ??
// Do something if data return from activity 3 ??
}
}
Activity 2
Intent intent = new Intent();
intent.putExtra("imageId", imagePath);
setResult(RESULT_OK, intent);
finish();
Activity 3
Intent intent = new Intent();
intent.putExtra("contactId", data);
setResult(RESULT_OK, intent);
finish();
set requestCode in your startActivityForResult
for activity 1:
calling activity 2
Intent intent = new Intent(this, Activity2.class);
startActivityForResult(intent,10);
calling activity 3
Intent intent = new Intent(this, Activity3.class);
startActivityForResult(intent,11);
Now when you come to onActivityResult
check that requestCode
like:
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case (10):
{
// do this if request code is 10.
}
break;
case (11):
{
// do this if request code is 11.
}
break;
}