Search code examples
androidandroid-alertdialogdismiss

How to dismiss AlertDialog in android


I created AlertDialog that contains 4 buttons

OptionDialog = new AlertDialog.Builder(this);
        OptionDialog.setTitle("Options");
        LayoutInflater li = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = li.inflate(R.layout.options, null, false);
        background = (Button) v.findViewById(R.id.bkgSpinnerLabel);
        SoundVib = (Button) v.findViewById(R.id.SoundVibSpinnerLabel);
        
        OptionDialog.setView(v);
        OptionDialog.setCancelable(true);
        OptionDialog.setNeutralButton("Ok",
                new DialogInterface.OnClickListener() {
                
                    public void onClick(DialogInterface arg0, int arg1) {
                    }
                });
        background.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                SetBackground();
             // here I want to dismiss it after SetBackground() method 
            }
        });
        

        SoundVib.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent soundVibIntent = new Intent(SebhaActivity.this, EditPreferences.class);
                startActivity(soundVibIntent);
            }
        });
        
        OptionDialog.show();

I want to dismiss it after SetBackground() method, how can I do this?


Solution

  • Actually there is no any cancel() or dismiss() method from AlertDialog.Builder Class.

    So Instead of AlertDialog.Builder optionDialog use AlertDialog instance.

    Like,

    AlertDialog optionDialog = new AlertDialog.Builder(this).create();
    

    Now, Just call optionDialog.dismiss();

    background.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            SetBackground();
            // here I want to dismiss it after SetBackground() method 
            optionDialog.dismiss();
        }
    });