2014-11-25 4 views
11

Hier ist mein Code -Wie überprüft man, ob AlertDialog.builder es anzeigt und es abbricht, wenn es angezeigt wird?

View layout = LayoutInflater.from(this).inflate(R.layout.dialog_loc_info, null); 
final Button mButton_Mobile = (Button) layout.findViewById(R.id.button); 
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setView(layout); 
mButton_Mobile.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View arg0) { 
     if(builder.) 
      showDialog(); // this is another dialog, nothing to do with this code 
     } 
    }); 
builder.setNeutralButton(getString(android.R.string.ok), 
         new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     dialog.dismiss(); 
    } 
}); 
builder.show(); 
+3

Geist Hinzufügen Kommentar, warum die Frage downvoted? Es wird mir helfen, die Qualität meiner Fragen zu erhöhen. – Darpan

Antwort

31

Sie AlertDialog Methoden dafür verwenden können.

AlertDialog alert = new AlertDialog.Builder(context).create(); 

if (alert.isShowing()) { 
    alert.dismiss(); 
} 

Ich hoffe, es hilft.

0

Sie können es mit diesem überprüfen:

if(alert != null && alert.isShowing()){ 
    alert.show();// or alert.dismiss() it 
} 
+0

@Darpan tnx für Ihre Erwähnung, aber ich habe von 'builder' Namen, weil gleich mit Frage Eigentümer Objekt' AlertDialog.Builder'. –

+1

Hier ist die Dokumentation http://developer.android.com/reference/android/app/AlertDialog.Builder.html. isShowing() Funktion ist nirgends. Versuchen Sie, Ihren Code auszuführen. – Darpan

+0

isShowing existiert nicht auf Builder –

0

AlertDialog erstreckt Dialog die isShowing() hat.

Hinweis: AlertDialog.Builder schafft eine AlertDialog Instanz. :)

+0

bereits erhalten/akzeptiert die Antwort – user2450263

2

Ein alternativer Ansatz ist es, ein Verfahren zu verwenden, das Alertdialog mit einem Builder zu erzeugen, und dann das Alertdialog zu erzeugen, ohne es zeigt, während den Alertdialog zu einer Klasse mit variabler Einstellung.

Dann mit .isShowing(); Methode überprüfen

Beispiel:

AlertDialog mAlertDialog; 

public showMyAlertDialog(View layout){ 

    AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); 

    builder.setView(layout); 

    builder.setNeutralButton(getString(android.R.string.ok),new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
      mAlertDialog = null; //setting to null is not required persay 
     } 

    }); 

    mAlertDialog = builder.create() 
    mAlertDialog.show(); 
} 

public boolean isAlertDialogShowing(AlertDialog thisAlertDialog){ 
    if(thisAlertDialog != null){ 
     return thisAlertDialog.isShowing(); 
    } 
} 

Hoffnung, dass es selbstverständlich ist, wie diese Quelle zu verwenden. prost

Verwandte Themen