2010-06-26 3 views

Répondre

141

Généralement, 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 quitter la boîte de dialogue et appuie sur le bouton Précédent. Par exemple, vous avez un dialogue standard Oui/Non sur 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 au lieu de faire un choix, la boîte de dialogue est annulée et aucune valeur n'est renvoyée à l'appelant.

+0

Merci pour la réponse. J'essaie de définir ce qui se passe si l'utilisateur appuie sur le bouton Annuler sur un sélecteur de date. D'abord, j'ai essayé d'utiliser un écouteur de rejet, et cela a fonctionné, mais aussi arrivé si l'utilisateur a choisi une heure. Puis j'ai essayé un écouteur d'annulation, et il ne s'est jamais éteint, même si j'ai appuyé sur annuler. Sais-tu ce que je devrais faire? – Aal

+2

Si vous utilisez un DatePickerDialog, vous devez utiliser OnDateSetListener pour être averti lorsque la date change. Si quelqu'un clique sur le bouton d'annulation ... alors il ne sera pas appelé et la boîte de dialogue disparaîtra d'elle-même. Pour les utilisations normales de DatePickerDialog, vous n'avez pas besoin de définir d'autres écouteurs. – Lee

22

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 dans 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 s'exécute uniquement lorsqu'elle est explicitement appelée dans votre code, ou lorsque l'utilisateur appuie sur le bouton BACK lorsque votre Dialog annulable est ouvert (comme indiqué par @Lee).

Si vous utilisez un DatePicker, tout ceci est toujours le cas. Comme @Lee dit, DatePickerDialog.OnDateSetListener détecte juste quand l'utilisateur a choisi une date de DatePicker. Le Android Developer Reference fournit plus d'informations sur Dialog s.

Questions connexes