首页 > 解决方案 > 如何在 AlertDialog 中更改项目文本的颜色

问题描述

这是一个带有项目列表的警报对话框:

        val cs: Array<CharSequence> = pairedDevices.map { z -> z.name }.toTypedArray()
        var selectedDevice: String = ""        val ab = AlertDialog.Builder(this, R.style.AlertDialog);
        ab.setTitle("Select device");
        ab.setIcon(android.R.drawable.ic_dialog_alert);
        ab.setPositiveButton("Select") { dialogueInterface, which -> btConnect(selectedDevice);
        };
        ab.setNeutralButton("Cancel") { dialogueInterface, which ->
            Toast.makeText(
                applicationContext,
                "No Bluetooth adapter selected.",
                Toast.LENGTH_LONG
            ).show()
        };
        ab.setItems(cs) { dialog, which -> selectedDevice= cs[which].toString() };
        val a = ab.create();
        a.setCancelable(false);
        a.show();

它在黑色背景上显示黑色文本。

<resources>
    <style name="PsaMfdTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:textColor">@color/text</item>
        <item name="android:textColorPrimaryDisableOnly">@color/textDisabled</item>
        <item name="android:background">@color/background</item>
        <item name="textColorAlertDialogListItem">@color/text</item>
        <item name="android:textColorHint">@color/text</item>
        <item name="android:textColorPrimary">@color/text</item>
        <item name="android:textColorSecondary">@color/text</item>
        <item name="android:textColorTertiary">@color/text</item>
        <item name="colorAccent">@color/text</item>
    </style>

    <style name="AlertDialog" parent="Theme.AppCompat.DayNight.Dialog">
        <item name="android:textColor">@color/text</item>
        <item name="android:textColorPrimaryDisableOnly">@color/textDisabled</item>
        <item name="android:background">@color/background</item>
        <item name="textColorAlertDialogListItem">#FFFFFF</item>
        <item name="android:textColorHint">@color/text</item>
        <item name="android:textColorPrimary">@color/text</item>
        <item name="android:textColorSecondary">@color/text</item>
        <item name="android:textColorTertiary">@color/text</item>
        <item name="colorAccent">@color/text</item>
    </style>
</resources>

如何更改文本颜色?到处似乎都在说textColorAlertDialogListItem,但这不起作用。

标签: android-styles

解决方案


它是

<item name="android:textColorAlertDialogListItem">@color/text</item>

推荐阅读