3

我有一个对话框:标题、消息和 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

4 回答 4

4

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

于 2012-09-20T17:56:54.877 回答
4

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

于 2012-09-20T17:56:57.473 回答
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

于 2020-01-23T14:45:14.170 回答
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();
}

在此处输入图像描述

于 2021-04-12T17:41:47.787 回答