¿Cómo comprobar si AlertDialog.builder está mostrando y cancelando si está mostrando?

Aquí está mi código –

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

5 Solutions collect form web for “¿Cómo comprobar si AlertDialog.builder está mostrando y cancelando si está mostrando?”

Puede usar los métodos AlertDialog para eso.

 AlertDialog alert = new AlertDialog.Builder(context).create(); if (alert.isShowing()) { alert.dismiss(); } 

Espero eso ayude.

Un enfoque alternativo es utilizar un método para generar el AlertDialog con un constructor y luego crear el AlertDialog sin mostrarlo al establecer el AlertDialog a una variable de clase.

Luego compruebe con .isShowing(); método

Ejemplo:

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

Esperamos que se entienda cómo usar esta fuente. aclamaciones

Prueba esto:

 if( myAlertDialog != null && myAlertDialog.isShowing() ) { myAlertDialog.dismiss(); } 

Documentación: isShowing ()

AlertDialog extiende el Dialog que tiene isShowing () .

Sugerencia: AlertDialog.Builder crea una instancia de AlertDialog . 🙂

Puede comprobarlo con esto:

 if(alert != null && alert.isShowing()){ alert.show();// or alert.dismiss() it } 
  • Async tarea para mostrar un AlertDialog
  • ¿Cuál es la mejor manera de obtener / usar Contexto dentro de AsyncTask?
  • ¿Qué tipo de constructor es este, comenzando con <T extends Drawable & DrawerToggle>?
  • ¿Qué hace la clase SQLiteOpenHelper con el parámetro de contexto?
  • Intentservice no hay constructor vacío, pero hay un constructor
  • Este tipo tiene un constructor y debe ser inicializado aquí - Kotlin
  • Android no puede resolver la intención del constructor
  • ¿Por qué no puedo pasar parámetros a Android Activity Constructor?
  • Cómo insertar el número de editText en AlertDialog Android
  • "No hay un constructor por defecto disponible en android.database.sqlite.SQLitepenhelper" en Android Studio
  • Creación falsa de objeto dentro del método
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.