【问题标题】:Dialog with more than 2 buttons带有 2 个以上按钮的对话框
【发布时间】:2012-09-20 17:54:58
【问题描述】:

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

代码:

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

【问题讨论】:

    标签: android button dialog


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        您可以使用带有可点击选项列表的默认 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

        【讨论】:

          【解决方案4】:

          简单...

          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();
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-11-29
            • 2016-10-10
            • 2012-09-22
            • 2023-04-06
            • 2011-12-01
            • 1970-01-01
            • 1970-01-01
            • 2012-09-05
            相关资源
            最近更新 更多