2017-04-19 8 views
0

In einer Android-Anwendung zeige ich dem Benutzer einen AlertDialog ohne Schaltflächen, nur eine Nachricht. Wie kann ich den AlertDialog programmatisch so zerstören, dass er nicht mehr sichtbar ist? Ich habe versucht mit Abbrechen() und ablehnen(), aber sie funktionieren nicht, die Ansicht bleibt dort.Wie AlertDialog programmgesteuert entfernen

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

dann habe ich versucht

test.show().cancel() und

test.show().dismiss() 

aber nicht funktioniert.

+0

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

Antwort

4

Sie sollten auf den AlertDialog selbst verweisen, nicht auf den Builder.

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

Danke das funktioniert und du warst der erste. – Nadir

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

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

Später wollen Sie es verbergen:

dialog.dismiss(); 
+0

10 vielen dank – Nadir

0

diese alertDialog.setCanceledOnTouchOutside(true); hinzufügen Dialogfeld zu schließen, wenn der Benutzer berühren außerhalb

ODER per Klick Gerät zurück Taste

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; 
    } 
}) 
Verwandte Themen