Comme le titre l'indique, quelle est la différence entre le rejet ou l'annulation d'une boîte de dialogue sous Android?
194
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 votreDialog
. Si vous préférez, vous pouvez appelerdismissDialog
leActivity
, qui à son tour appelleradismiss
leDialog
.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 annulableDialog
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 leDatePicker
.L' Android Developer Reference fournit plus d'informations sur
Dialog
s.la source
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
la source