Sobes.tech
Junior — Middle

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 для передачи данных.

Основные шаги:

  1. В вызывающей Activity запускаете новую Activity с помощью startActivityForResult() (в старом API) или используете registerForActivityResult() (в новом API).

  2. В текущей Activity, перед закрытием (например, при нажатии кнопки назад), создаёте Intent, кладёте в него данные результата и вызываете setResult(RESULT_OK, intent).

  3. Затем вызываете finish(), чтобы закрыть текущую Activity.

  4. В вызывающей 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();

Таким образом, при навигации назад можно передать данные обратно вызывающему приложению.