gpt4 book ai didi

android - AlertDialog 的自定义主题不起作用

转载 作者:行者123 更新时间:2023-11-29 14:21:22 25 4
gpt4 key购买 nike

我正在尝试自定义 AlertDialog 按钮的强调色。但它似乎没有任何影响,它似乎是从系统继承颜色。这是我的风格/主题。

   <color name="actionable_items">#0574ac</color>  <!-- it is blue color --> 
<style name="LLDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<!--buttons color-->
<item name="colorAccent">@color/actionable_items</item>
<!--item RadioButton or CheckBox color-->
<item name="colorControlActivated">@color/actionable_items</item>
<item name="colorPrimary">@color/actionable_items</item>
<item name="colorPrimaryDark">@color/actionable_items</item>
<item name="android:listChoiceIndicatorMultiple">@color/actionable_items</item>
<item name="android:listChoiceIndicatorSingle">@color/actionable_items</item>
</style>

这是我尝试构建警报对话框的代码。

final CustomPopupBuilder removePlaceDialog =  new CustomPopupBuilder(new ContextThemeWrapper(context,
R.style.LLDialog));
removePlaceDialog.setTitle(getString(R.string.delete_place, placeName));
removePlaceDialog.setMessage(getString(R.string.delete_place_message));
removePlaceDialog.setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
....
....
}
});
removePlaceDialog.setNegativeButton(R.string.cancel, null);
removePlaceDialog.create().show();

最终的 AlertDialog 没有具有相同文本颜色的按钮。文字颜色类似于绿色。它似乎是从系统继承颜色而不是自定义主题。这是图片:enter image description here

编辑 1:

我尝试使用 AlertDialog.Builder 但它给了我相同的结果。

final AlertDialog.Builder removePlaceDialog =  AlertDialog.Builder(new ContextThemeWrapper(context,
R.style.LLDialog));
removePlaceDialog.setTitle(getString(R.string.delete_place, placeName));
removePlaceDialog.setMessage(getString(R.string.delete_place_message));
removePlaceDialog.setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
....
....
}
});
removePlaceDialog.setNegativeButton(R.string.cancel, null);
removePlaceDialog.create().show();

编辑2:

我还尝试更改对话框的强调色,但我没有看到该颜色:

<style name="LLDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<!--buttons color-->
<item name="colorAccent">#990000</item>
...
...
</style>

即使这样也不会改变按钮文本颜色:(。

最佳答案

请检查您的 AlertDialog 导入。它应该从 v7 支持库中导入,以便在旧的 Android 版本上应用样式。我有同样的问题并从

更改导入行
import android.app.AlertDialog

import android.support.v7.app.AlertDialog

帮助了我。

2019 年更新:

因为谷歌发布了 AndroidX 库,新的答案是

import androidx.appcompat.app.AlertDialog;

感谢@ChristosThemelis

关于android - AlertDialog 的自定义主题不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37916455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com