¿Cómo manejar el botón Atrás en el diálogo?
Estoy desarrollando una aplicación que cuando se pulsa el botón, abre un diálogo con los botones Aceptar y Cancelar.
Funciona bien.
- AlertDialog con casilla de verificación En android
- Android: crea una ventana emergente que tiene varias opciones de selección
- ¿Cómo se diseñan los botones en Alert Dialog Fragment usando Material Design?
- ListView personalizado en un diálogo
- Android - ¿Cómo mostrar un diálogo en una pantalla nativa?
Cuando el usuario presiona el botón de retroceso, estoy manejando esto como sigue
public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { } return super.onKeyDown(keyCode, event); }
Pero el método anterior no se llama. ¿Cómo puedo manejar esto?
- ¿Cómo puedo agregar botones personalizados en el diseño de AlertDialog?
- String.xml me proporciona una cadena incorrecta para ProcessDialog
- Mostrar AlertDialog con ImageView sin ningún relleno
- Estado de comprobación de ListView Viewholder
- BottomSheetDialog / BottomSheetDialogFragment - ¿qué usar y cómo?
- Inflating RecyclerView en DialogFragment IllegalStateException
- Cómo agregar un SnackBar en la parte inferior de la superposición de un diálogo
- Cómo tachar los elementos de texto en listview cuando está marcada?
dialog.setOnKeyListener(new Dialog.OnKeyListener() { @Override public boolean onKey(DialogInterface arg0, int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) { finish(); dialog.dismiss(); } return true; } });
Parece que desea establecer OnCancelListener cuando crea el cuadro de diálogo. Se parece a esto:
dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { //do whatever you want the back key to do } });
OnCancel
anular el método OnCancel
. Este método llama a presionar tecla Atrás. Aquí está el código que funciona perfecto para mí.
AlertDialog alertDialog; alertDialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { // TODO Auto-generated method stub dialog.dismiss(); } });
Esperamos que esto le ayude, y lo acepte si es útil para usted.
Gracias..
Prueba esto
new AlertDialog.Builder(this).setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ Logger.d(TAG, "--------- Do Something -----------"); return true; } return false; } })
Es porque cuando su diálogo se abre entonces su ventana navegar su enfocado a Diálogo. Así que ahora usted tiene que manejar la key
en su cuadro de diálogo.
- Botón de la imagen de androide
- Necesidad de manejar excepción no captada y enviar archivo de registro