Alert dialog with text followed with a checkbox and 2 buttons
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 开发者_Python百科end 2 buttons for OK and Cancel.
How to have textview and checkbox as part of alert dialog?
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.
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.
精彩评论