Показать диалоговое окно, когда пользователь использовал кнопку «Назад» на устройстве

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

  case android.R.id.home:
      if(!didWeSave){
          SHOW THE DIALOG BOX WITH OPTIONS
      } else {
         NavUtils.navigateUpFromSameTask(this);
      }
   return true;

Прямо сейчас он работает правильно только тогда, когда пользователь нажимает стрелку назад из приложения. Однако это не работает, когда я нажимаю кнопку «Назад» на физическом устройстве. Как это исправить?

Спасибо


person AndroidDevNoob    schedule 14.09.2015    source источник
comment
Вы переопределяете onBackPressed()?   -  person codeMagic    schedule 14.09.2015


Ответы (3)


Попробуйте переопределить onBackPressed() вашей активности и отобразить там диалоговое окно.

person Mateus Brandao    schedule 14.09.2015
comment
Это сделает это. Я приму ваш ответ. Большое спасибо. - person AndroidDevNoob; 14.09.2015

просто добавь

@Override
public void onBackPressed() {
    //SHOW THE DIALOG BOX WITH OPTIONS
}

в вашей деятельности

person Fakher    schedule 14.09.2015

Приведенные выше ответы верны, но для завершения вы должны закомментировать super(), чтобы избежать закрытия активности без взаимодействия с пользователем в вашем диалоговом окне и обеспечить утечку окна.

public void onBackPressed() {

 //do Your stuff here
   showDialog();

 //comment out super() here
 //super.onBackPressed();

}
person Opiatefuchs    schedule 14.09.2015