DialogFragment 上的肯定和否定按钮位置

Positive and Negative Button position on a DialogFragment

有什么办法可以改变 DialogFragment 中正、负和中性按钮的显示顺序,以便我可以先放置负按钮?

我不想更改按钮的 "nature",但让它们保持 "positive"、"negative" 和 "neutral"。

这样试试:

builder.setMessage(R.string.dialog_fire_missiles)
           .setPositiveButton()
           .setNeutralButton()
           .setNegativeButton()

这不是最优雅的方式,但它会做你想做的事

AlertDialog.Builder builder = new AlertDialog.Builder(SUtils.getContext());
        builder.setMessage("Confirmation?")
            .setCancelable(false)
            .setNegativeButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    //TOdo
                    dialog.cancel();
                }
            })
            .setPositiveButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    //TOdo
                }
            })


        diaglog = builder.create();

只需将“取消”按钮设置为正,将“确定”按钮设置为负。

按您想要的顺序声明按钮:

  • 在 Honeycomb 之前的设备上,按钮顺序(从左到右)为正 - 中 - 负。

  • 在使用 Holo 主题的较新设备上,按钮顺序(从左到右)现在为负 - 中性 - 正。

由于您通常会为 DialogFragment 创建自定义 XML 布局,因此您可以在那里创建所需的按钮并将它们放置在布局中的任何位置。

那么您可以直接获取按钮(通过它们的 ID),而不是使用正向、中性或负向按钮,为它们提供 onClick 侦听器以执行您想要的任何操作。