未显示警报对话标题和消息
Alert dialogue title and message are not shown
我创建了提醒对话框,但标题和消息没有显示在这里是我的提醒对话框代码
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();
}
});
这是它的截图
而不是 context
,尝试使用 ActivityName.this
。
我不知道是什么原因造成的,但首先我很确定您不需要分别调用 builder.create()
然后 dialog.show()
。
直接调用 builder.show()
并让 Alert Dialog Builder 处理其创建和显示。如果您确实需要 dialog
实例,请从 builder.show()
.
的结果中获取它
关于缺少文本,也许您正在覆盖某些样式,您是否检查过文本是否只是白色并且因此是 "invisible"?
您还必须在 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);
我创建了提醒对话框,但标题和消息没有显示在这里是我的提醒对话框代码
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();
}
});
这是它的截图
而不是 context
,尝试使用 ActivityName.this
。
我不知道是什么原因造成的,但首先我很确定您不需要分别调用 builder.create()
然后 dialog.show()
。
直接调用 builder.show()
并让 Alert Dialog Builder 处理其创建和显示。如果您确实需要 dialog
实例,请从 builder.show()
.
关于缺少文本,也许您正在覆盖某些样式,您是否检查过文本是否只是白色并且因此是 "invisible"?
您还必须在 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);