2017-04-19 1 views
0

Dans une application Android, je montre à l'utilisateur un AlertDialog sans boutons, juste un message. Comment puis-je détruire le AlertDialog par programmation afin qu'il ne soit plus visible? J'ai essayé avec cancel() et dismiss() mais ils ne fonctionnent pas, la vue reste là.Comment faire pour supprimer AlertDialog par programme

AlertDialog.Builder test = new AlertDialog.Builder(context); 
test.setTitle("title"); 
test.setCancelable(true); 
test.setMessage("message..."); 
test.create().show(); 

puis j'ai essayé

test.show().cancel() et

test.show().dismiss() 

mais ne fonctionne pas.

+0

http://stackoverflow.com/a/14445953/5188051 check this out –

Répondre

4

Vous devriez vous référer au AlertDialog lui-même, pas au constructeur.

AlertDialog.Builder test = new AlertDialog.Builder(context); 
test.setTitle("title"); 
test.setCancelable(true); 
test.setMessage("message..."); 
ALertDialog testDialog = test.create(); 
testDialog.show(); // to show 
testDialog.dismiss(); // to dismiss 
+0

Merci pour ce travail et vous avez été le premier. – Nadir

4
AlertDialog.Builder test = new AlertDialog.Builder(context); 
... 

AlertDialog dialog = test.create().show(); 

Plus tard, vous voulez cacher:

dialog.dismiss(); 
+0

merci beaucoup – Nadir

0

ajouter cette alertDialog.setCanceledOnTouchOutside(true); de rejeter boîte de dialogue si contact utilisateur en dehors

OU par clic Device bouton retour

alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 
    @Override 
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      alertDialog.dismiss(); 
      return true; 
     } 
     return false; 
    } 
})