Android Dialog, keep dialog open when button is pressed

后端 未结 7 1384
故里飘歌
故里飘歌 2020-11-30 01:59

I would like to keep my dialog open when I press a button. At the moment it\'s closing.

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder         


        
7条回答
  •  余生分开走
    2020-11-30 02:38

    Yes, you can. You basically need to:

    1. Create the dialog with DialogBuilder
    2. show() the dialog
    3. Find the buttons in the dialog shown and override their onClickListener

    So, create a listener class:

    class CustomListener implements View.OnClickListener {
      private final Dialog dialog;
    
      public CustomListener(Dialog dialog) {
        this.dialog = dialog;
      }
    
      @Override
      public void onClick(View v) {
    
        // Do whatever you want here
    
        // If you want to close the dialog, uncomment the line below
        //dialog.dismiss();
      }
    }
    

    Then when showing the dialog use:

    AlertDialog dialog = dialogBuilder.create();
    dialog.show();
    Button theButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
    theButton.setOnClickListener(new CustomListener(dialog));
    

    Remember, you need to show the dialog otherwise the button will not be findable. Also, be sure to change DialogInterface.BUTTON_POSITIVE to whatever value you used to add the button. Also note that when adding the buttons in the DialogBuilder you will need to provide onClickListeners - you can not add the custom listener in there, though - the dialog will still dismiss if you do not override the listeners after show() is called.

提交回复
热议问题