Когда вы запускаете MainActivity, каждая его переменная будет инициализирована заново, т.е. станет нулевой. У вас есть 2 решения,
Сохраните ваши значения в SharedPreferences, чтобы более старое значение не получало. детали https://www.simplifiedcoding.net/android-sharedpreferences-example/
использовать результат onActivity, который будет возвращать значение из второго действия
Для запуска действия, которое должно возвращать результат вызывающемуактивность, вы должны сделать что-то вроде ниже. Вы должны передать код запроса, как показано ниже, чтобы определить, что вы получили результат от действия, которое вы начали.
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();
}
}
}
РЕДАКТИРОВАТЬ на основе вашего комментария: Если вы хотите вернуть три строки, затем выполните это, используя пары ключ / значение с намерением вместо 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");
}
}
}