Android studio 如何在Android Studio中根据代码将文本颜色设置为默认值?

Android studio 如何在Android Studio中根据代码将文本颜色设置为默认值?,android-studio,colors,Android Studio,Colors,我的应用程序中有一个EditText,它检查用户在每次更改时的输入,并在输入格式错误时将文本颜色设置为R.color.red\u error\u text。当输入再次正常时,颜色应更改回默认值,这取决于当前设置的主题。是否有一种方法可以取消设置该值,即一个相当于在设计编辑器中清除textColor字段或从XML中删除相应条目的代码 或者,我可以从代码中将文本颜色设置为?attr/textColorPrimary 我知道只要颜色发生变化,我就可以查询当前设置的主题,然后手动设置颜色;但是,每当引入

我的应用程序中有一个EditText,它检查用户在每次更改时的输入,并在输入格式错误时将文本颜色设置为
R.color.red\u error\u text
。当输入再次正常时,颜色应更改回默认值,这取决于当前设置的主题。是否有一种方法可以取消设置该值,即一个相当于在设计编辑器中清除textColor字段或从XML中删除相应条目的代码

或者,我可以从代码中将文本颜色设置为
?attr/textColorPrimary

我知道只要颜色发生变化,我就可以查询当前设置的主题,然后手动设置颜色;但是,每当引入新主题或应用程序的配色方案因某种原因发生变化时,代码都必须更改


任何帮助都将不胜感激

我终于找到了答案。转化为Kotlin,解决方案是:

fun resolveColor(id: Int): Int {
    val typedValue = TypedValue()
    theme.resolveAttribute(id, typedValue, true)
    return typedValue.resourceId
}
然后我们可以打电话

editInput.setTextColor(ContextCompat.getColor(applicationContext,
    resolveColor(R.attr.editTextColor)))
在当前设置的应用程序主题(包括白天/晚上主题)中设置文本颜色
resolveColor(R.attr.someThemeColor)
似乎也适用于
theme.xml
s中定义的任何其他颜色