我有这段代码,我需要在对话框中看到正向和负向按钮,但是我看不到它们。仅显示带有标题和消息的对话框。请帮忙。
下面是我的代码:
//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();
}
答案 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
表示中性按钮。