Réponses:
En règle générale, une boîte de dialogue est fermée lorsque son travail est terminé et qu'elle est supprimée de l'écran. Une boîte de dialogue est annulée lorsque l'utilisateur souhaite quitter la boîte de dialogue et appuie sur le bouton Retour.
Par exemple, vous avez une boîte de dialogue standard Oui / Non à l'écran. Si l'utilisateur clique sur Non, la boîte de dialogue est fermée et la valeur de Non est renvoyée à l'appelant. Si au lieu de choisir Oui ou Non, l'utilisateur clique sur Retour pour sortir de la boîte de dialogue plutôt que de faire un choix, la boîte de dialogue est annulée et aucune valeur n'est renvoyée à l'appelant.
dismiss
est quelque chose que vous devez appeler explicitement dans votre code, généralement pour répondre à un événement de clic sur un bouton de votre Dialog
. Si vous préférez, vous pouvez appeler dismissDialog
le Activity
, qui à son tour appellera dismiss
le Dialog
.
La cancel
méthode ne s'exécute que lorsqu'elle est explicitement appelée dans votre code, ou lorsque l'utilisateur appuie sur le bouton RETOUR lorsque votre annulable Dialog
est ouvert (comme @Lee l'a noté).
Si vous utilisez a DatePicker
, tout cela est toujours le cas. Comme @Lee l'a dit, DatePickerDialog.OnDateSetListener
détecte simplement quand l'utilisateur a choisi une date dans le DatePicker
.
L' Android Developer Reference fournit plus d'informations sur Dialog
s.
cancel
méthode. Il y a deux écouteurs différents pour la suppression et l'annulation.
Dismiss
L'appel du rejet supprime la boîte de dialogue de l'écran. Cette méthode peut être appelée en toute sécurité depuis n'importe quel thread. Notez que vous ne devez pas remplacer cette méthode pour effectuer le nettoyage lorsque la boîte de dialogue est fermée , mais implémentez-la dans onStop .
Cancel
L'appel de l'annulation annule la boîte de dialogue. C'est essentiellement la même chose que l'appel de la fonction de renvoi () , mais cela appellera également votre DialogInterface.OnCancelListener , s'il est enregistré.
Hide
Cette méthode masque la boîte de dialogue, mais ne la ferme pas.
Et pour en savoir plus, voir ici