AlertDialog按钮

时间:2019-07-16 19:02:50

标签: android android-alertdialog

我有这段代码,我需要在对话框中看到正向和负向按钮,但是我看不到它们。仅显示带有标题和消息的对话框。请帮忙。

下面是我的代码:

 //Ask the user whether they wish to allow the phone permissions
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setIcon(android.R.drawable.ic_dialog_alert);
        builder.setTitle("Phone Permissions");
        builder.setMessage("You need to Give Permissions  to be able to Upload your Picture")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
                                Uri.parse("package:" + getPackageName()));
                        finish();
                        startActivity(intent);
                        return;
                    }
                    })
         .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                Toast.makeText(getApplicationContext(), "You cannot Upload a photo without Giving Permissions!!", Toast.LENGTH_LONG).show();
                dialog.cancel();
                finish();
                return;
            }
        });
        AlertDialog alertdialog = builder.create();
        alertdialog.show();
    }

2 个答案:

答案 0 :(得分:0)

我想提出另一种观点:

您可以只创建一个自定义对话框类,以便为您的对话框提供自定义布局,在单独的类中控制所有内容-我发现它更简洁,更有条理。

例如,创建dialogClass:

public class ProgressDialog extends Dialog {

public ProgressDialog(@NonNull Context context) {
    super(context);

    setContentView(R.layout.progress_dialog); //this is your layout for the dialog

    }
}

所有您需要做的就是立即创建对话框并按以下方式调用它:

ProgressDialog progressDialog = new ProgressDialog(getContext());
progressDialog.show(); // this line shows your dialog

在对话框类中,您可以放置​​逻辑,而不必在使用AlertDialog

时使用很多代码

答案 1 :(得分:0)

我认为您的应用主题可能导致对话框中的按钮不显示,因为它们的样式与对话框的颜色匹配。尝试单击它们应显示的位置,以查看按钮是否在那里。

您还可以通过编程方式修改按钮的样式。

Button positiveButton  = alertdialog.getButton(DialogInterface.BUTTON_POSITIVE);
// #000000 gives you black
positiveButton.setTextColor(Color.parseColor("#000000"));
positiveButton.setBackgroundColor(android.R.color.transparent);

getButton内部用BUTTON_NEGATIVE表示否定按钮,用BUTTON_NEUTRAL表示中性按钮。