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.
dismisses 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 llamardismissDialogalActivity, que a su vez llamarádismissalDialog.El
cancelmétodo solo se ejecuta cuando seDialoginvoca 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.OnDateSetListenersolo detecta cuándo el usuario ha elegido una fecha deDatePicker.La Referencia para desarrolladores de Android proporciona más información sobre
Dialogs.fuente
cancelmétodo. Hay dos oyentes diferentes para atenuar y cancelar.DismissLlamar 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 .CancelAl 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.HideEste método oculta el diálogo, pero no lo descarta.Y para más ver aquí
fuente