繁体   English   中英

AlertDialog 不显示三星 Galaxy s4 中的正负按钮

[英]AlertDialog not showing positive and negative button in Samsung Galaxy s4

我已经显示了带有 2 个按钮的AlertDialog ,即是和取消,这是代码。

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.setPositiveButtonbuilder.setNegativeButton仅在 Samsung Galaxy S4 上产生问题,对于其他设备,它运行良好。

更新

我需要在为构建器设置按钮后创建对话框,但我担心的是为什么它可以与其他设备一起使用而只是在 Samsung Galaxy S4 上造成问题?

试试这种方式。 我希望这对你有用。

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

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

只是移动

final AlertDialog dialog = builder.create();

设置按钮后

您可以尝试使用此代码..

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

                })
                .show();

我在调用 Builder.create(); 后收到该错误; 前正负按钮。 所以我这样做:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_custom_statistic, null);
builder.setView(view);
builder.setCancelable(false);

// Initialize view
...

builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // Do something
        builder.create().dismiss();
    }
});
builder.setNegativeButton("Cancel", null);

final AlertDialog dialog = builder.create();
dialog.show();

// This for edit color and caps text
TextView ok = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
TextView no = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
ok.setTextColor(getResources().getColor(R.color.purple_200));
ok.setAllCaps(false);
no.setTextColor(getResources().getColor(R.color.purple_200));
no.setAllCaps(false);

例如我,当我将消息设置为空字符串 ("") 时,我的按钮没有显示在 AlertDialog 上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM