Cómo deshabilitar el botón de retroceso cuando el cuadro de alerta está en la pantalla
Utilicé la función onKeyDown en la actividad ….. pero al pulsar el botón de nuevo se hace clic primero cancela el cuadro de diálogo y va a nuestra actividad … Quiero tanto o la actividad y el cuadro de diálogo cerrado al hacer clic en el botón de nuevo o desactivar El botón de retroceso cuando se muestra el cuadro de diálogo …
Cualquiera puede sugerir cualquier solución para esto ….
- ¿Cómo configurar el diálogo para mostrarlo con pantalla completa?
- Cuadro de diálogo o formulario donde el usuario puede elegir para introducir detalles o cancelar
- Problema de diálogo: requestFeature () debe ser llamado antes de agregar contenido
- Android: Cuadro de diálogo emergente
- ¿Descartar un diálogo personalizado?
Gracias por adelantado,
Actualizar
Hola Gracias por su respuesta. El progressDialog
con .setCancelable(false);
Está funcionando bien.
Pero aquí quiero otra cosa. Cuando el diálogo de progreso está en ejecución, entonces presionaré la tecla BACK y quiero mostrar un cuadro de diálogo de alerta para que el usuario pueda notificar que el progreso se está ejecutando.
¿Hay alguna solución al respecto?
Por favor, ayúdame.
Gracias por adelantado.
- Cómo configurar los márgenes en un cuadro de diálogo personalizado?
- Ancla el cuadro de diálogo Android a una vista
- La interfaz se está desvaneciendo pero el cuadro de diálogo de alerta no se muestra
- Android no puede obtener el tamaño de archivo de diálogo
- ¿Cómo mostrar el diálogo incluso si la pantalla está bloqueada?
- Interfaz de diálogo Android obtener vistas de diálogo interno
- ¿Cómo mantener CustomDialog cuando su actividad está terminada?
- Dialog.show () vs. Activity.showDialog ()
¿Has intentado establecer su propiedad setCancelable()
a false
Algo como esto
progressDialog.setCancelable(false);
Puede ser esto le ayudará en su caso:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // Show your Alert Box here } return false; }
Sólo quiero mejorar @MoJo respuesta
alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { //Your handler return false; } });
Personalmente, una solución más limpia era terminar la LoginActivity antes de iniciar la intención en lugar de establecer Banderas en el paquete de la nueva actividad o sobrepasar cualquier método. Intente algo como esto abajo donde Login es su actividad de inicio de sesión y Home es la primera actividad después de iniciar sesión con éxito en el usuario.
finish(); Intent intent = new Intent(Login.this, Home.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent);
"Quiero que tanto la actividad como el cuadro de diálogo estén cerrados"
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { finish(); return true; } });
"O desactivar el botón de retroceso cuando se muestra el cuadro de diálogo" Esto puede bloquear volver desde el diálogo. Al crearlo dinámicamente, agregue:
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { return true; } });
Devolver true es impedir que este diálogo se cierre y no se puede cerrar pulsando. También sugiero agregar:
dialog.setCanceledOnTouchOutside(false);
Lo que evitará que el usuario descarte el diálogo haciendo clic fuera de él.
- Consola para programadores de Android: una huella dactilar errónea tras la creación de la versión con Android Studio
- Compatibilidad de diseño de material a versiones bajo Android 5.0?