Ваш первоначальный вопрос был не совсем ясен в отношении того, что вы хотели сделать. Поэтому, если вы хотите показать диалог, когда пользователь нажимает кнопку «Назад» после ввода типов в EditText
, тогда вам необходимо указать @Override
метод onBackPressed
в вашем классе Activity.
@Override
public void onBackPressed() {
// Here you want to show the user a dialog box
new AlertDialog.Builder(context)
.setTitle("Exiting the App")
.setMessage("Are you sure?")
.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// The user wants to leave - so dismiss the dialog and exit
finish();
dialog.dismiss();
}
}).setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// The user is not sure, so you can exit or just stay
dialog.dismiss();
}
}).show();
}
Вы можете посмотреть на принятый ответ here.
Но если вы только хотели, чтобы справиться с задним нажатием кнопки на самом диалоге, то есть уже ответ на этот вопрос - в основном вы установите для OnKeyListener
в диалоге, как это:
dialog.setOnKeyListener(new Dialog.OnKeyListener() {
@Override
public boolean onKey(DialogInterface arg0, int keyCode,KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK) {
/* The user pressed back button - do whatever here.
Normally you dismiss the dialog like dialog.dismiss(); */
}
return true;
}
});
Посмотрите на принятый ответ here.
http://stackoverflow.com/a/7080331/1179430 – GAntoine