Como dice el título, ¿cuál es la diferencia entre descartar o cancelar un diálogo en Android?
193
Normalmente, un cuadro de diálogo se cierra cuando finaliza su trabajo y se elimina de la pantalla. Un diálogo se cancela cuando el usuario quiere escapar del diálogo y presiona el botón Atrás.
Por ejemplo, tiene un cuadro de diálogo estándar Sí / No en la pantalla. Si el usuario hace clic en No, el cuadro de diálogo se cierra y el valor de No se devuelve a la persona que llama. Si en lugar de elegir Sí o No, el usuario hace clic en Atrás para escapar del cuadro de diálogo en lugar de hacer una elección, el cuadro de diálogo se cancela y no se devuelve ningún valor a la persona que llama.
dismiss
es algo que debe llamar explícitamente en su código, generalmente para responder a un evento de clic en un botón en suDialog
. Si lo prefiere, puede llamardismissDialog
alActivity
, que a su vez llamarádismiss
alDialog
.El
cancel
método solo se ejecuta cuando seDialog
invoca explícitamente en su código, o cuando el usuario presiona el botón ATRÁS cuando su cancelable está abierto (como señaló @Lee).Si está utilizando a
DatePicker
, entonces todo esto sigue siendo el caso. Como dijo @Lee,DatePickerDialog.OnDateSetListener
solo detecta cuándo el usuario ha elegido una fecha deDatePicker
.La Referencia para desarrolladores de Android proporciona más información sobre
Dialog
s.fuente
cancel
método. Hay dos oyentes diferentes para atenuar y cancelar.Dismiss
Llamar al despido elimina el diálogo de la pantalla. Este método se puede invocar de forma segura desde cualquier subproceso. Tenga en cuenta que no debe anular este método para realizar la limpieza cuando se cierra el cuadro de diálogo, sino implementarlo en onStop .Cancel
Al llamar a cancelar, se cancela el diálogo. Esto es esencialmente lo mismo que llamar a despedir () , pero también llamará a su DialogInterface.OnCancelListener , si está registrado.Hide
Este método oculta el diálogo, pero no lo descarta.Y para más ver aquí
fuente