我创建了警报对话,但此处未显示标题和消息是我的警报对话代码
holder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new AlertDialog.Builder(context, android.R.style.Theme_Material_Dialog_Alert);
} else {
builder = new AlertDialog.Builder(context);
}
builder.setTitle("Alert");
builder.setMessage("Are you sure")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
});
的屏幕截图
答案 0 :(得分:1)
而不是context
,请尝试使用ActivityName.this
。
答案 1 :(得分:1)
你必须在AlertBuilder中传递主题。
AlertDialog.Builder myAlert = new AlertDialog.Builder(getContext(), R.style.AppCompatAlertDialogStyle);
deleteAlert.setTitle(title);
deleteAlert.setMessage(message);
deleteAlert.setPositiveButton(android.R.string.ok, clickListener);
deleteAlert.setNegativeButton(android.R.string.cancel, clickListener);
deleteAlert.show();
如果调用了show(),则无需调用create()方法。因为show()方法在内部调用create()。
注意: 我可以从我的经验中清楚地说出这个问题。我错过了传递主题。
R.style.AppCompatAlertDialogStyle
不工作:
AlertDialog.Builder myAlert = new AlertDialog.Builder(getContext());
工作成功:
AlertDialog.Builder myAlert = new AlertDialog.Builder(getContext(), R.style.AppCompatAlertDialogStyle);
答案 2 :(得分:0)
我不知道造成这种情况的原因,但首先我确定您不需要分别致电builder.create()
然后dialog.show()
。
直接调用builder.show()
并让Alert Dialog Builder处理其创建和显示。如果您确实需要dialog
实例,请从builder.show()
的结果中获取它。
关于缺少文本,也许你压倒一些风格,你是否检查过文本是否只是白色,因为那是"看不见"?