Каким образом можно передать результат из текущей Activity обратно в вызывающее её приложение при использовании навигации назад?
Answer from AI
sobes.tech AI
Чтобы передать результат из текущей Activity обратно в вызывающее приложение при навигации назад в Android, обычно используют метод setResult() вместе с Intent для передачи данных.
Основные шаги:
-
В вызывающей Activity запускаете новую Activity с помощью
startActivityForResult()(в старом API) или используетеregisterForActivityResult()(в новом API). -
В текущей Activity, перед закрытием (например, при нажатии кнопки назад), создаёте
Intent, кладёте в него данные результата и вызываетеsetResult(RESULT_OK, intent). -
Затем вызываете
finish(), чтобы закрыть текущую Activity. -
В вызывающей Activity переопределяете метод
onActivityResult()(старый API) или обрабатываете результат в callback (новый API), чтобы получить данные.
Пример с использованием старого API:
// В вызывающей Activity
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String result = data.getStringExtra("result_key");
// обработать результат
}
}
// В текущей Activity (SecondActivity)
Intent resultIntent = new Intent();
resultIntent.putExtra("result_key", "данные для возврата");
setResult(RESULT_OK, resultIntent);
finish();
Таким образом, при навигации назад можно передать данные обратно вызывающему приложению.