web-dev-qa-db-fra.com

Comment fermer un dialogue dans Android par programme?

Comment fermer un dialogue dans Android par programme, par exemple avec un bouton?

Imaginez que j'ai un dialogue avec un bouton OK, et que je veux le fermer avec le bouton OK, mais je ne peux pas le faire!

J'ai cherché sur Google et rien trouvé d'utile, et presque tous pour fermer AlertDialog pas un dialogue.

27

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

47
iagreen

Voici un exemple de la création d’un AlertDialog avec 2 boutons (OK et annuler) . Lorsque vous cliquez sur le bouton d’annulation, 

dialog.dismiss ()

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

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

constructeur.dismiss ();

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
Philipp Jahoda
dialog.dismiss();

Seule cette ligne le fermera. :-)

Implémentez-le dans le onClickListener.

8
Helmisek

Vous pouvez utiliser les méthodes cancel() ou dismiss() . La méthode cancel() est essentiellement la même chose que d’appeler licencier (), mais elle appellera également votre DialogInterface.OnCancelListener (s’il est enregistré).

5
amatellanes

Si votre boîte de dialogue est une activité distincte, le moyen le plus simple de la fermer consiste à appeler:

   finish();

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

Cela appellera les méthodes onPause (), onStop () et onDestroy () en conséquence et arrêtera l'activité en cours - comme le bouton "Retour". 

0
Serj Ardovic