Alert dialog with text followed with a checkbox and 2 buttons

前端 未结 2 1671
长发绾君心
长发绾君心 2021-02-15 12:46

I have requirement to pop up alert dialog which is like a EULA screen. Which will have text describing EULA with a checkbox \"Don\'t show this again\" and in the end 2 buttons f

相关标签:
2条回答
  • 2021-02-15 13:29

    I have to agree with Mudassir, EULAs are not suppose to have "Don't show again" checkboxes, but here's how you could go about doing something like that though.

    You can use a AlertDialog.Builder to build a dialog box that contains a view (which you can design in XML). Here's an example

    AlertDialog.Builder eulaBuilder = new AlertDialog.Builder(this);
                LayoutInflater eulaInflater = LayoutInflater.from(this);
                View eulaLayout = eulaInflater.inflate(R.layout.eula, null);
                eulaBuilder.setView(eulaLayout);
                Checkbox dontShowAgain = (CheckBox)eulaLayout.findViewById(R.id.dontShowAgain);
                eulaBuilder.setPositiveButton("Agree", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface d, int m) {
                        // Do something
                    }
                });        
                eulaBuilder.setNegativeButton("Disagree", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface d, int m) {
                        // Do something
                    }
                });
                eulaMsg = eulaBuilder.create();
    

    What you can do is create an XML with a single object, CheckBox. Then add the view into the AlertDialog.Builder. Use AlertDialog.Builder.setMessage("EULA message here") to set your EULA message.

    0 讨论(0)
  • 2021-02-15 13:38

    Look at these two different method:

    1) First method more simply and very fast:

    CheckBox checkBox = new CheckBox(this);
    checkBox.setText("This is your checkbox message");
    LinearLayout linearLayout = new LinearLayout(this);
    linearLayout.setLayoutParams( new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
                            LinearLayout.LayoutParams.FILL_PARENT));
    linearLayout.setOrientation(1);     
    linearLayout.addView(checkBox);
    
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setView(linearLayout);
    alertDialogBuilder.setTitle("This is the title of alert dialog");
    alertDialogBuilder.setMessage("This is the message of alert dialog");
    alertDialogBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
              // do something
         }
    });
    alertDialogBuilder.show();
    

    2) Second method, with a more customized layout:

    look this page, there is also the XML code to create the checkbox.

    0 讨论(0)
提交回复
热议问题