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

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 } 
  • Constructores en Kotlin
  • ¿Por qué utilizar newInstance para DialogFragment en lugar del constructor?
  • Error de Constructor vacío en DeviceAdminReceiver
  • Android AlertDialog Builder
  • ¿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>?
  • Android no puede resolver la intención del constructor
  • Este tipo tiene un constructor y debe ser inicializado aquí - Kotlin
  • Creación falsa de objeto dentro del método
  • Vistas de Android personalizadas con Kotlin
  • Intentservice no hay constructor vacío, pero hay un constructor
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.