当前位置: 首页 > 知识库问答 >
问题:

如何在android 5中更改默认对话框按钮文本颜色

艾凌龙
2023-03-14

我的应用程序中有许多警报对话框。这是一个默认的布局,但我添加了积极和消极按钮的对话框。因此,按钮将获得Android 5的默认文本颜色(绿色)。我试图改变它,但没有成功。你知道怎么改变文字颜色吗?

我的自定义对话框:

public class MyCustomDialog extends AlertDialog.Builder {

    public MyCustomDialog(Context context,String title,String message) {
        super(context);

        LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
        View viewDialog = inflater.inflate(R.layout.dialog_simple, null, false);

        TextView titleTextView = (TextView)viewDialog.findViewById(R.id.title);
        titleTextView.setText(title);
        TextView messageTextView = (TextView)viewDialog.findViewById(R.id.message);
        messageTextView.setText(message);

        this.setCancelable(false);

        this.setView(viewDialog);

    } }

创建对话框:

MyCustomDialog builder = new MyCustomDialog(getActivity(), "Try Again", errorMessage);
builder.setNegativeButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            ...
                        }
}).show();

共有1个答案

洪开诚
2023-03-14

您可以尝试先创建AlertDialog对象,然后使用它进行设置以更改按钮的颜色,然后显示按钮。(请注意,在builder对象上,我们调用show()而不是调用show()来获取alertdialog对象:

//1. create a dialog object 'dialog'
MyCustomDialog builder = new MyCustomDialog(getActivity(), "Try Again", errorMessage); 
AlertDialog dialog = builder.setNegativeButton("OK", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    ...
                }

            }).create();

//2. now setup to change color of the button
dialog.setOnShowListener( new OnShowListener() {
    @Override
    public void onShow(DialogInterface arg0) {
        dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(COLOR_I_WANT);
    }
});

dialog.show()

您必须在onshow()执行此操作,并且不能在创建对话框后直接获取该按钮,原因是该按钮尚未创建。

我将alertdialog.button_积极更改为alertdialog.button_negal,以反映您问题中的更改。虽然奇怪的是“OK”按钮会是一个负面按钮。通常是正面按钮。

 类似资料:
  • 我想改变颜色,想要一个更好的设计。。对此可以做些什么

  • 这里是我的创建对话框代码, 是否可以用蓝色而不是红色显示Disclose?

  • 这里有一个小问题,就像我在对话框中有回收人员视图fragment.ie在回收人员视图中的银行名称当我们在回收人员视图中选择一家银行并在对话框片段后解雇该名称应该出现在按钮上,即当我们从对话框片段中选择联合银行时,它应该出现在按钮上。问题是当我们单击按钮时,它的文本会发生变化,而不是在解散监听器的时间 这是Dialog解雇代码: 以下是onclick事件,其中打开对话框并打印值: 在以下方面相同:

  • 我有一个弹出下载音频指令在我的应用程序。我正在尝试做的是,我想改变默认的文本颜色“OK”为蓝色。我试了一些东西,但不起作用。下面是我的代码: 但这种改变并没有反映出,有谁能告诉我,我做错了什么?

  • 如何更改所有按钮的文本颜色? 我知道我可以像下面这样设置背景色: