Hoe kun je het resultaat van de huidige activiteit teruggeven aan de oproepende app bij gebruik van de navigatie terug?
sobes.tech AI
Antwoord van 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();
Таким образом, при навигации назад можно передать данные обратно вызывающему приложению.