Подтвердить что ты не робот

Android: startActivityForResult() с функциональностью кнопки BACK

Я хотел бы начать новый activity для result, с startActvityForResult(), но я бы хотел, чтобы кнопка back работала нормально в новом действии.

В настоящее время, когда я вызываю новый activity для результата, ничего не происходит, когда я нажимаю кнопку "Назад" в новом действии.

Я пробовал что-то вроде этого:

@Override
public void onBackPressed() {
    setResult(0);
    super.onBackPressed();
    finish();
}

в новой операции, но это не сработало. Тем не менее ничего не происходит, когда нажата кнопка "Назад".

Есть ли способ обойти это?

EDIT: я мог бы, конечно, загрузить последний activity в onBackPressed() (может я?), но это похоже на довольно дрянной хак.

Алекс Ади отвечает, решает мою проблему, но я до сих пор не понимаю, почему onBackPressed() не работает. Рабочий код теперь примерно такой:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        setResult(1);
        finish();
    }
    return super.onKeyDown(keyCode, event);
}

Я мог бы использовать объяснение.

4b9b3361

Ответ 1

Вы можете попробовать

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
         finish();
    }
    return super.onKeyDown(keyCode, event);
}

Ответ 2

Вам не нужно переопределять поведение кнопки "Назад". По умолчанию, если пользователь нажимает кнопку "Назад", результат будет Activity.RESULT_CANCELED.

Ответ 3

Попробуйте избавиться от строки, содержащей финиш().