¿Cómo puedo activar un evento cuando el clic se produce fuera de un diálogo
Me gustaría saber cómo resolver un problema que tengo.
Tengo un diálogo que aparece en una actividad. El cuadro de diálogo no cubre toda la pantalla, por lo que los botones de la actividad siguen apareciendo. Puedo cerrar fácilmente el diálogo cuando hay un toque fuera de los límites del diálogo con dialog.setCanceledOnTouchOutside(true);
- El cuadro de diálogo de Android se muestra de nuevo después de que la actividad se vuelve a crear
- Android VMD MySQL insertar y mostrar el diálogo
- DialogFragment de Android vs Diálogo
- Cuadro de diálogo sin título
- ¿Cómo re tamaño de la Altura de los artículos en Spinner con opción múltiple?
Sin embargo lo que quiero hacer es disparar un evento si un clic está fuera de los límites del diálogo (por ejemplo, si alguien toca un botón en la actividad principal, debe cerrar el cuadro de diálogo y disparar ese evento al mismo tiempo).
- Cómo crear un diálogo personalizado no deseable en android
- AlertDialog con el selector
- VideoView no se procesa correctamente después de desaparecer el teclado de Dialog
- ¿Cómo mostrar un diálogo para confirmar que el usuario desea salir de una actividad de Android?
- Cómo eliminar el fondo oscuro transparente fuera del cuadro de diálogo
- AndroidRuntimeException: requestFeature () debe ser llamado antes de agregar contenido
- Cómo configurar el fondo de la ventana de diálogo transparente, sin afectar su margen
- ¿Cómo mostrar Cuadro de diálogo de la clase que extiende Aplicación en android?
Esto funciona para mi,,
Window window = dialog.getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); dialog.show();
Cuando dialog.setCanceledOnTouchOutside(true);
Entonces usted acaba de anular onCancel()
como este:
dialog.setOnCancelListener( new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { //When you touch outside of dialog bounds, //the dialog gets canceled and this method executes. } } );
Escriba su código dentro del método onCancel()
para que se ejecute cuando el cuadro de diálogo se cancela.