带有2个以上按钮的对话框

时间:2012-09-20 17:54:58

标签: android button dialog

我有一个对话框:标题,消息和2个按钮(中性和负面)我试图放入另一个中性或负面按钮,但它只显示每个按钮(中性和负面),所以有没有办法放一个按钮还是我必须创建对话框的自定义布局?如果是的话,该怎么做?

代码:

      AlertDialog.Builder dialogo = new AlertDialog.Builder(this);      
    dialogo.setMessage(msg);
    dialogo.setTitle(titulo);
    dialogo.setNeutralButton("OK", null);
    dialogo.setNegativeButton("Delete", deletar);
    dialogo.show();

4 个答案:

答案 0 :(得分:4)

您可以使用setPositiveButton添加第三个按钮,但除此之外,您还必须设置自定义视图。要设置自定义视图,只需使用setView(yourView)调用AlertDialog.Builder

答案 1 :(得分:4)

默认情况下,最多可以有三个按钮,即中性,负片和正片。除此之外,您还需要在对话框中使用自定义布局,或者创建自己的对话框。

答案 2 :(得分:0)

您可以使用默认的Android对话框以及可点击的选项列表。

    String[] dialogOptions = new String[]{ "Option 0", "Option 1", "Option 2", "Option 3"};
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("DIALOG TITLE")
           .setItems(dialogOptions, new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int which) {
                      switch (which){
                           case 0:
                                //Option #0 picked, do something
                                break;
                           case 1:
                                //Option #1 picked, do something
                                break;
                           case 2:
                                //Option #2 picked, do something
                                break;
                           case 3:
                                //Option #3 picked, do something
                                break;
                      }
                 }
           })
           .create()
           .show();

注意:在我的测试过程中,setMessage()和list不能一起使用,因此我建议您仅使用setTitle()并跳过setMessage()。 来源:https://developer.android.com/guide/topics/ui/dialogs#AddingAList

答案 3 :(得分:0)

简单...

void multiPopup() {
    AlertDialog.Builder ad = new AlertDialog.Builder(context);
    ad.setTitle("Choose one...");
    ad.setItems(
      new String[] {"red", "green", "blue", "cancel"},
      new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            Log.i("dev", "clicked .. " + which);
        }
    });
    ad.create().show();
}

enter image description here