Android AlertDialog在三星Galaxy s4中未显示正负按钮

Android AlertDialog在三星Galaxy s4中未显示正负按钮,android,android-alertdialog,android-dialog,Android,Android Alertdialog,Android Dialog,我已经显示了带有两个按钮的AlertDialog,即Yes和Cancel,这是代码 final AlertDialog.Builder builder = new AlertDialog.Builder(RiderDetailActivity.this); builder.setCancelable(false); builder.setMessage("Are you sure?"); final AlertDialog dialog = builder.create()

我已经显示了带有两个按钮的
AlertDialog
,即Yes和Cancel,这是代码

final AlertDialog.Builder builder = new AlertDialog.Builder(RiderDetailActivity.this);
builder.setCancelable(false);
builder.setMessage("Are you sure?");

final AlertDialog dialog = builder.create();
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        dialog.dismiss();
    }
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        dialog.dismiss();
    }
});
dialog.show();
这不会仅在三星galaxy s4上显示“是”和“取消”按钮

但是当我将它与
dialog.setButton一起使用时,它工作得非常好

dialog.setButton(DialogInterface.BUTTON_POSITIVE, "Yes", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        dialog.dismiss();
    }
});
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        dialog.dismiss();
    }
});

注意:
builder.setPositiveButton
builder.setNegativeButton
只在三星Galaxy S4上产生了问题,对于其他设备来说,它工作得很好

更新
我需要在将按钮设置为builder后创建对话框,但我关心的是为什么它与其他设备一起工作,而只是在三星Galaxy S4上产生问题?

您在添加按钮之前创建对话框

快走

final AlertDialog dialog = builder.create();

设置按钮后,请尝试这种方式。我希望这对你有用

 final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setCancelable(false);
    builder.setMessage("Are you sure?");
    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            dialogInterface.dismiss();
        }
    });
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            dialogInterface.dismiss();
        }
    });
    final AlertDialog dialog = builder.create();
    dialog.show();

alertDialog.show()方法之后添加这两行

alertDialog.getButton(alertDialog.BUTTON_NEGATIVE).setTextColor(ContextCompat.getColor(_context, R.color.red));
alertDialog.getButton(alertDialog.BUTTON_POSITIVE).setTextColor(ContextCompat.getColor(_context, R.color.red));

您可以尝试使用此代码

 new AlertDialog.Builder(this)
                .setTitle("Add new Title")
                .setMessage("Type Message here")
                .setPositiveButton("Add", (dialog, whichButton) -> {
                   // Onclick event Here
                })
                .setNegativeButton("Close",(dialog, i) -> {

                })
                .show();

final AlertDialog=builder.create()将这一行添加到
dialog.show()上方和see@Redman是的,这是可行的,但是为什么它早些时候与其他设备和模拟器一起工作呢?如果这是我的错误,它不应该也适用于其他设备。这是预期的行为,因为您在生成对话框后向生成器添加了按钮。移动
final AlertDialog=builder.create()添加后button@VladMatvienko是的,我明白了,但在这种情况下,它不应该与其他设备和模拟器一起工作。它可能不工作。有很多未记录的功能。是的,这是可行的,但为什么它早些时候与其他设备和模拟器一起工作?有时三星操作系统会给android带来一些问题。请投票支持回答哇,很好的解释,你能告诉我什么是三星操作系统吗?我还以为是安卓,我知道三星也基于安卓操作系统。但我听说三星在其设备上安装安卓系统时也会修改一些东西。因为有时我也只在三星遇到问题,而在其他设备上代码工作正常是的,但是为什么它早些时候与其他设备和模拟器一起工作?@RaviRupareliya正如你所知,三星对android原始版本的定制程度太高,这就是为什么三星制造了这个问题。Xiomi Redmi也和三星一样,也许如果你使用该设备进行测试,你也会遇到这些问题。这是否意味着之前的按钮在那里,但有透明的文本颜色?我不是100%确定,但在某些设备上它没有显示。