How to check if AlertDialog.builder is showing and cancelling it if its showing?

You can use AlertDialog methods for that.

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

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

Hope it helps.


An alternative approach is to use a method to generate the AlertDialog with a builder and then create the AlertDialog without showing it while setting the AlertDialog to a class variable.

Then check with .isShowing(); method

Example:

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

hope that it is understood how to use this source. cheers