2014-11-25 11 views
11

Ecco il mio codice -Come verificare se AlertDialog.builder sta visualizzando e cancellato se viene visualizzato?

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

Mente aggiungendo un commento sul perché downvoted la domanda? mi aiuterà ad elevare la qualità delle mie domande. – Darpan

risposta

31

È possibile utilizzare i metodi AlertDialog per quello.

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

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

Spero che sia d'aiuto.

0

si può controllare con questo:

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

@Darpan tnx per la tua segnalazione, ma l'ho usato dal nome 'builder' perché uguale all'oggetto proprietario della domanda' AlertDialog.Builder'. –

+1

questa è la documentazione http://developer.android.com/reference/android/app/AlertDialog.Builder.html. La funzione ishow() non è in nessun luogo. Prova a eseguire il codice potrebbe essere. – Darpan

+0

isShowing non esiste sul builder –

0

AlertDialog estende Dialog che ha isShowing().

Suggerimento: AlertDialog.Builder crea un'istanza AlertDialog. :)

+0

già ricevuto/accettato la risposta – user2450263

2

Un approccio alternativo consiste nell'utilizzare un metodo per generare AlertDialog con un builder e quindi creare AlertDialog senza mostrarlo mentre si imposta AlertDialog su una variabile di classe.

Poi controllare con .isShowing(); metodo

Esempio:

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(); 
    } 
} 

speranza che si è capito come utilizzare questa fonte. evviva