【问题标题】:Can't change Android Alert Dialog Button Color无法更改 Android 警报对话框按钮颜色
【发布时间】:2020-06-21 19:40:21
【问题描述】:

虽然我尝试了以下代码,但无论如何我都无法更改警报对话框的颜色。

Java:

    private void showAlertDialog(String title, String message){
    AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this, R.style.AlertDialogTheme);
    builder.setTitle(title);
    builder.setMessage(message);
    builder.setPositiveButton("Tamam", null);
    builder.show();
}

XML:

    <style name="AlertDialogTheme" parent="Theme.AppCompat.Dialog.Alert">
    <!--item name="android:background">@color/google_orange</item-->
    <item name="colorPrimary">@color/google_orange</item>
    <item name="buttonBarPositiveButtonStyle">@color/google_orange</item>
    <item name="colorButtonNormal">@color/google_orange</item>
    <item name="colorError">@color/google_orange</item>
    <item name="colorAccent">@color/google_orange</item>
</style>

【问题讨论】:

    标签: android xml button colors android-alertdialog


    【解决方案1】:

    无法重现您发布的问题:“无法更改 Android 警报对话框按钮颜色”。使用“colorButtonNormal”会改变按钮的颜色。

    【讨论】:

    • 是的,应该有,但不幸的是我的情况不是,我不明白原因
    • 而且我认为这应该是评论而不是答案
    • 对不起,我的错。感谢您的提醒。这里的新用户,没有注意到“添加评论”这个灰色的小字眼。
    【解决方案2】:

    我认为这会起作用!

         private void showAlertDialog(String title, String message){
          AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this, R.style.AlertDialogTheme);
          builder.setTitle(title);
          builder.setMessage(message);
          builder.setPositiveButton("Tamam", null);
          builder.setOnShowListener( new OnShowListener() {
            @Override
            public void onShow(...) {
                builder.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(COLOR_YOU_WANT);
             }
            });
    
          builder.show();
       }
    

    【讨论】:

    • builder 没有名为“setOnShowListener”的方法
    【解决方案3】:

    好的,刚刚解决了。问题是我使用了 android.app.AlertDialog 而不是 androidx.appcompat.app.AlertDialog。我不知道为什么,但下面的代码不适用于第一个。 如果您使用第二个,这就可以解决问题:

    <style name="AlertDialogTheme" parent="Theme.AppCompat.Dialog.Alert">
        <item name="colorAccent">@color/google_orange</item>
    </style>
    

    Java 代码与问题中的相同。

    【讨论】:

      猜你喜欢
      • 2020-07-06
      • 1970-01-01
      • 2018-03-05
      • 2019-11-24
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多