Per iniziare un'attività che dovrebbe restituire il risultato all'attività chiamante, dovresti fare qualcosa di simile di seguito. Dovresti passare il codice richiesta come mostrato di seguito per identificare che hai ottenuto il risultato dall'attività che hai iniziato.
startActivityForResult(new Intent(“YourFullyQualifiedClassName”),requestCode);
Nell'attività è possibile utilizzare setData()
per restituire il risultato.
Intent data = new Intent();
String text = "Result to be returned...."
//---set the data to pass back---
data.setData(Uri.parse(text));
setResult(RESULT_OK, data);
//---close the activity---
finish();
Quindi di nuovo nella prima attività scrivi il codice seguente in onActivityResult ()
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == request_Code) {
if (resultCode == RESULT_OK) {
String returnedResult = data.getData().toString();
// OR
// String returnedResult = data.getDataString();
}
}
}
MODIFICA in base al tuo commento:
se vuoi restituire tre stringhe, segui questa operazione facendo uso delle coppie chiave / valore con l'intento invece di usare Uri.
Intent data = new Intent();
data.putExtra("streetkey","streetname");
data.putExtra("citykey","cityname");
data.putExtra("homekey","homename");
setResult(RESULT_OK,data);
finish();
Ricevili su onActivityResult come di seguito:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == request_Code) {
if (resultCode == RESULT_OK) {
String street = data.getStringExtra("streetkey");
String city = data.getStringExtra("citykey");
String home = data.getStringExtra("homekey");
}
}
}