Comment fermer une boîte de dialogue dans Android par programme?

Comment fermer une boîte de dialogue dans android par programme par exemple par un bouton?

Imaginez que j'ai une boîte de dialogue avec un bouton OK dessus, et que je veux le fermer par le bouton OK, mais je ne peux pas le faire!

J'ai googlé et n'ai rien trouvé d'utile, et presque tous pour fermer AlertDialog pas un dialogue.

25
demandé sur Philipp Jahoda 2013-08-09 01:20:04

5 réponses

, Vous pouvez appeler dismiss dans la boîte de dialogue.

41
répondu iagreen 2013-08-08 21:23:04

Ceci est un exemple de la façon de créer un AlertDialog avec 2 boutons (OK et annuler). Lorsque vous cliquez sur le bouton Annuler,

Boîte de dialogue

.rejeter()

Est appelé pour fermer la boîte de dialogue.

De n'importe où à l'extérieur, vous pouvez appeler

Constructeur.rejeter();

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setMessage("Some message.")
                   .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           // do something
                       }
                   })
                   .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           dialog.dismiss();
                       }
                   });

            builder.show();
8
répondu Philipp Jahoda 2013-08-08 21:32:34
dialog.dismiss();

Seule cette ligne la fermera. :-)

Implémentez-le dans onClickListener.

7
répondu Helmisek 2013-08-08 21:23:01

Vous pouvez utiliser les méthodes cancel() ou dismiss(). La méthode cancel() est essentiellement la même que l'appel de dismiss (), mais elle appellera également votre DialogInterface.OnCancelListener (Si enregistré).

4
répondu amatellanes 2013-08-08 21:40:08

Si vous avez votre boîte de dialogue en tant qu'activité distincte, le moyen le plus simple de la fermer est d'appeler:

   finish();

Appelez cette méthode dans la classe OnClickListener, onClick() méthode.

Cela appellera les méthodes onPause(), onStop() et onDestroy() en conséquence et tuera l'activité actuelle-identique au bouton' Back'.

0
répondu Serj Ardovic 2017-09-07 20:37:04