Перехват кнопки назад - PullRequest
21 голосов
/ 01 сентября 2010

Я пишу приложение, которое будет иметь два действия, когда пользователь нажимает кнопку «Назад» во втором действии, должно появиться диалоговое окно с просьбой подтвердить действие.Так как мне это перехватить?Я серьезно сомневаюсь в этом, потому что backstack является частью самой ОС.Кто-нибудь нашел обходной путь?

Ответы [ 3 ]

50 голосов
/ 01 сентября 2010

В упражнении вы можете просто переопределить

onBackPressed ()

edit: это api lvl 5+: / для 4 и ниже, вы должны переопределить onKeyDown ()

11 голосов
/ 01 сентября 2010

Просто переопределите метод onKeyDown в своей деятельности и найдите кнопку «Назад».Верните true, чтобы событие использовалось.

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //Do something here
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
5 голосов
/ 17 сентября 2013

Как заметил Швиз, вы захотите переопределить метод onBackPressed() в своем классе активности (http://developer.android.com/reference/android/app/Activity.html#onBackPressed()).

Я просто хотел добавить, что если вы захотите на каком-то этапе продолжить с илиполучить доступ к стандартной операции возврата (после, скажем, отображения диалогового окна), а затем просто позвонить super.onBackPressed() или ActivityName.super.onBackPressed() из любой точки действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...