Я пишу приложение, которое будет иметь два действия, когда пользователь нажимает кнопку "Назад" во втором действии, и появится диалоговое окно с просьбой подтвердить действие. Итак, как мне это перехватить? Я серьезно сомневаюсь в этом, потому что backstack является частью самой ОС. Кто-нибудь нашел обходное решение?
Перехват кнопки "Назад"
Ответ 1
В действии вы можете просто переопределить
onBackPressed()
edit: это api lvl 5+:/for 4 и ниже вы должны переопределить onKeyDown()
Ответ 2
Просто переопределите метод onKeyDown в своей деятельности и найдите кнопку "Назад". Верните true так, чтобы событие было потреблено.
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Do something here
return true;
}
return super.onKeyDown(keyCode, event);
}
Ответ 3
Как отметил schwiz, вы хотите переопределить метод onBackPressed()
в своем классе активности (http://developer.android.com/reference/android/app/Activity.html#onBackPressed()).
Я просто хотел добавить, что если бы вы захотели на какой-то стадии продолжить или получить доступ к стандартным обратным операциям (после того, как, скажем, отобразив диалог), вы просто вызываете super.onBackPressed()
или ActivityName.super.onBackPressed()
из любого места в активность.