суббота, 17 мая 2014 г.

Перехватываем нажатие на кнопку BACK

Порой бывает неоходимо контролировать реацию приложения на нажатие кнопки BACK, например, если нужно запретить пользователя закрыть приложение подобным образом, либо реализовать свою логику навигации по стеку активити.
Само нажатие перехватывается переопределением метода Activity onKeyDown()





//Для версия 1.х
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  //Проверяем какая кнопка была нажата
  if (keyCode == KeyEvent.KEYCODE_BACK) {
   
   /*выполняем нужные действия*/

                        //показываем, что обработали событие нажатия на клавишу, возвращая true
   return true;
  } 
  return super.onKeyDown(keyCode, event);
 }

//И более простое решение для версий 2.х+
//И заодно пример как сделать выход из приложения по подтверждению
@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
        .setTitle("Выйти из приложения?")
        .setMessage("Вы действительно хотите выйти?")
        .setNegativeButton(android.R.string.no, null)
        .setPositiveButton(android.R.string.yes, new OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                 //SomeActivity - имя класса Activity для которой переопределяем onBackPressed(); 
                 SomeActivity.super.onBackPressed();
            }
        }).create().show();
}
 
 
Источник:  http://idev.by/android/snippets-android/19709/

Комментариев нет:

Отправить комментарий