You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在MainActivity中如何修改AlertDialog弹窗的文字颜色

Android修改Dialog文字颜色解决方案

你已经在使用自定义主题R.style.MyDialogTheme,直接在主题中配置文字颜色是最稳定的实现方式,无需修改原有业务代码:

方法1:修改自定义Dialog主题配置

在项目的res/values/styles.xml或res/values/themes.xml文件中找到MyDialogTheme,添加对应文字颜色属性即可:

<style name="MyDialogTheme" parent="Theme.MaterialComponents.Light.Dialog.Alert">
    <!-- 你已配置好的黑色背景 -->
    <item name="android:background">@android:color/black</item>
    <!-- 标题文字设为白色 -->
    <item name="android:textColorPrimary">@android:color/white</item>
    <!-- 内容文字设为白色 -->
    <item name="android:textColorSecondary">@android:color/white</item>
    <!-- 按钮文字设为白色 -->
    <item name="android:buttonBarPositiveButtonStyle">@style/DialogWhiteButton</item>
    <item name="android:buttonBarNegativeButtonStyle">@style/DialogWhiteButton</item>
    <item name="android:buttonBarNeutralButtonStyle">@style/DialogWhiteButton</item>
</style>

<style name="DialogWhiteButton" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
    <item name="android:textColor">@android:color/white</item>
</style>

修改完成后原有Kotlin代码无需调整,运行即可看到所有文字变为白色。

方法2:代码动态修改文字颜色

如果不想修改主题配置,也可以在Dialog渲染后动态修改控件属性,修改后的代码如下:

fun notificationofWinner(player: Int) {
    val alert = AlertDialog.Builder(this@MainActivity, R.style.MyDialogTheme)
    alert.setTitle("GAME OVER! Player $player wins!!!")
    alert.setPositiveButton("Ok") { dialog , Button -> }
    val dialog = alert.create()
    dialog.show()
    // 必须在show之后调用,否则会拿不到控件实例
    // 修改标题颜色
    val titleId = resources.getIdentifier("alertTitle", "id", packageName)
    dialog.findViewById<TextView>(titleId)?.setTextColor(Color.WHITE)
    // 后续如果添加了message内容,可打开下行注释修改内容颜色
    // dialog.findViewById<TextView>(android.R.id.message)?.setTextColor(Color.WHITE)
    // 修改确定按钮颜色
    dialog.getButton(AlertDialog.BUTTON_POSITIVE)?.setTextColor(Color.WHITE)
}

内容的提问来源于stack exchange,提问作者Chris Marshall Iheacho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:06:04