Для того, щоб розпочати діяльність, яка повинна повернути результат до виклику, слід зробити щось на кшталт нижче. Ви повинні передати код запиту, як показано нижче, щоб визначити, що ви отримали результат від розпочатої діяльності.
startActivityForResult(new Intent(“YourFullyQualifiedClassName”),requestCode);
У діяльності ви можете скористатися, setData()
щоб повернути результат.
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();
Тоді знову в першій діяльності ви пишете код нижче в 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();
}
}
}
EDIT на основі Вашого коментаря:
Якщо ви хочете повернути три рядки, то виконайте це, використовуючи пари ключ / значення з наміром замість використання Uri.
Intent data = new Intent();
data.putExtra("streetkey","streetname");
data.putExtra("citykey","cityname");
data.putExtra("homekey","homename");
setResult(RESULT_OK,data);
finish();
Отримайте їх у onActivityResult, як показано нижче:
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");
}
}
}