警告对话框标题和消息未显示。

3
我创建了一个警告对话框,但标题和消息没有显示,这是我的警告对话框代码:
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();
        }
    });

这是关于IT技术的截图:enter image description here
3个回答

4
您需要在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

尝试使用ActivityName.this代替context


0

我不知道是什么原因导致的,但是首先我很确定你不需要分别调用builder.create()dialog.show()

直接调用builder.show(),让警告对话框生成器处理其创建和显示。如果你真的需要dialog实例,请从builder.show()的结果中获取它。

关于缺少文本的问题,也许你正在覆盖某些样式,你是否检查过这些文本是否只是白色,并因此“不可见”?


你能否发布 Theme_Material_Dialog_Alert 的样式源代码? - Luís Brito

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接