Android:设置警报对话框中单选按钮的文本颜色

Vit*_*lii 4 android android-alertdialog android-styles

我有一个简单的警报对话框,其中包含单选项目

val alertDialog = AlertDialog.Builder(this)
alertDialog.setTitle("My Title")
val array = arrayOf("aa", "bb", "cc")
alertDialog.setSingleChoiceItems(array, 0) { _, selectedItem ->
}
alertDialog.setNegativeButton("Cancel") { _, _ ->
}
alertDialog.create()
alertDialog.show()
Run Code Online (Sandbox Code Playgroud)

我已将警报对话框的自定义样式添加到我的主题中

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

     .........
     <item name="android:timePickerDialogTheme">@style/DefaultAlertDialogTheme</item>
     <item name="android:datePickerDialogTheme">@style/DefaultAlertDialogTheme</item>
     <item name="android:alertDialogTheme">@style/DefaultAlertDialogTheme</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是我的风格

<style name="DefaultAlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:colorAccent">@color/greenButtonBackgroundColor</item>
    <item name="android:textColorSecondary">@color/greenButtonBackgroundColor</item>
    <!--title-->
    <item name="android:textColor">@color/toolbarTitleTextColor</item>
</style>
Run Code Online (Sandbox Code Playgroud)

当我运行该应用程序时,我看到此警报

在此输入图像描述

有没有办法在不创建自定义布局的情况下更改单选按钮附近文本的颜色?

Dmi*_*zak 7

为单选按钮项目着色的样式

<style name="DefaultAlertDialogTheme" parent="Theme.MaterialComponents.Light.Dialog.Alert">
    <!--        Title Color-->
    <item name="android:textColorPrimary">@color/black</item>
    <!--        Radio button unchecked-->
    <item name="android:colorControlNormal">@color/medium_gray</item>
    <!--        Radio button checked-->
    <item name="android:colorControlActivated">@color/warmPink</item>
    <!--        List item on click highlight color-->
    <item name="android:colorControlHighlight">@color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)