Comme le titre l'indique, quelle est la différence entre un dialogue rejeté ou annulé sous Android?
En règle générale, une boîte de dialogue est fermée lorsque son travail est terminé et qu'il est supprimé de l'écran. Une boîte de dialogue est annulée lorsque l'utilisateur souhaite sortir de la boîte de dialogue et appuie sur le bouton Précédent.
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 Précédent pour quitter 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
dans le Activity
, qui appellera à son tour dismiss
sur le Dialog
.
La méthode cancel
ne s'exécute que lorsqu'elle est explicitement appelée dans votre code ou lorsque l'utilisateur appuie sur la touche BACK lorsque votre _ annulable Dialog
est ouvert (comme indiqué par @Lee).
Si vous utilisez un DatePicker
, c'est toujours le cas. Comme @Lee a dit, DatePickerDialog.OnDateSetListener
_ détecte seulement quand l'utilisateur a choisi une date parmi DatePicker
.
Le Référence du développeur Android fournit plus d'informations sur Dialog
s.
Dismiss
L'appel de la suppression supprime la boîte de dialogue de l'écran. Cette méthode peut être invoquée en toute sécurité depuis n'importe quel thread. Notez que vous ne devez pas remplacer cette méthode pour effectuer un 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. Cela revient essentiellement à appeler licencier (), mais l'appelera également votre DialogInterface.OnCancelListener, s'il est enregistré.
Hide
Cette méthode masque le dialogue, mais ne le rejette pas.
Et pour plus voir ici