如何添加第三个button到Android Alert Dialog?

该API说,警报对话框可以有一个,两个或三个button,但SDK只允许一个正面和负面的button。 那我怎么能添加第三个button?

这段代码应该可以帮助解释你可以使用的三个不同的button:

alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle("Dialog Button"); alertDialog.setMessage("This is a three-button dialog!"); alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Button 1 Text", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //... } }); alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Button 2 Text", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //... }}); alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Button 3 Text", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //... }}); 

在创build对话框时,将如下所示添加到构build器中:

 builder = new AlertDialog.Builder(context); builder.setTitle("Test"); builder.setIcon(R.drawable.icon); builder.setMessage("test"); builder.setPositiveButton("Call Now", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); builder.setNeutralButton("Setup", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { context.startActivity(new Intent(context, Setup.class)); //dialog.cancel(); } }); builder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); 

添加任何数量的button,而无需xml:

  AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Title"); builder.setItems(new CharSequence[] {"button 1", "button 2", "button 3", "button 4"}, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // The 'which' argument contains the index position // of the selected item switch (which) { case 0: Toast.makeText(context, "clicked 1", 0).show(); break; case 1: Toast.makeText(context, "clicked 2", 0).show(); break; case 2: Toast.makeText(context, "clicked 3", 0).show(); break; case 3: Toast.makeText(context, "clicked 4", 0).show(); break; } } }); builder.create().show(); 
 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( this); // set title alertDialogBuilder.setTitle("To Do List"); // set dialog message alertDialogBuilder .setMessage("What do you want?") .setCancelable(false) .setPositiveButton("Delete All", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // if this button is clicked, close // current activity dialog.cancel(); } }).setNeutralButton("Delete", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // if this button is clicked, close // current activity dialog.cancel(); } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // if this button is clicked, just close // the dialog box and do nothing dialog.cancel(); } }); // create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // show it alertDialog.show();