警报对话标题和消息未显示

时间:2016-04-25 19:39:10

标签: android alertdialog android-alertdialog

我创建了警报对话,但此处未显示标题和消息是我的警报对话代码

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();
        }
    });

这是enter image description here

的屏幕截图

3 个答案:

答案 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()的结果中获取它。

关于缺少文本,也许你压倒一些风格,你是否检查过文本是否只是白色,因为那是"看不见"?