ventana studio emergente edittext custom crear con android android-dialog

android - studio - ¿Cómo disparo un evento cuando se produce un clic fuera de un diálogo?



input dialog android (3)

Me gustaría saber cómo resolver un problema que tengo.

Tengo un diálogo que aparece en una actividad. El diálogo no cubre toda la pantalla, por lo que los botones de la actividad aún se muestran. Puedo cerrar fácilmente el diálogo cuando hay un toque fuera de los límites del diálogo con dialog.setCanceledOnTouchOutside(true);

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, debería cerrar el Diálogo y disparar ese evento al mismo tiempo).


Cuando dialog.setCanceledOnTouchOutside(true); entonces simplemente anula onCancel() esta manera:

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 se cancele el diálogo.



Puede utilizar la siguiente solución para desencadenar un evento cuando se produce un clic fuera de un cuadro de diálogo:

dialog.setOnCancelListener( new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { yourFunction(); } } );