Android:在警告对话框

时间:2018-06-17 20:23:44

标签: 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()

我已经在我的主题中添加了自定义风格的提醒对话框

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

这就是我的风格

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

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

enter image description here

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

3 个答案:

答案 0 :(得分:1)

试试这个

 val array = arrayOf(Html.fromHtml("<font color='#00FF00'>aa</font>"),
                Html.fromHtml("<font color='#00FF00'>bb</font>"),
                Html.fromHtml("<font color='#00FF00'>cc</font>"))

您可以查看更多详情here

答案 1 :(得分:1)

您可以使用样式

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">                      
    <item name="android:textColor">@color/your_text_color_here</item>       
</style>

然后在您的代码中执行

val alertDialog = AlertDialog.Builder(this, R.style.MyDialogTheme)

答案 2 :(得分:1)

使单选按钮项着色的样式

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