通过样式在 EditText 中设置错误状态

doe*_*doe 6 android android-edittext

我有一个具有以下样式的 Edittext

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/white" android:state_focused="true" />
    <item android:color="@color/yellow" android:state_focused="false" />
    <item android:color="@color/white" android:state_active="true" />
</selector>
Run Code Online (Sandbox Code Playgroud)

在我应用的 Edittext 样式中

<item name="backgroundTint">@drawable/states_edit_text</item>
Run Code Online (Sandbox Code Playgroud)

它有效。这会更改状态 normal 和focused 中的 EditTexts 底线颜色。当它处于错误状态时,我需要将色调颜色更改为红色。

就像是

<item android:state_error="true" android:color="@color/red"></item>
Run Code Online (Sandbox Code Playgroud)

但是没有称为错误的状态,我参考了其他答案,他们建议通过代码来实现。有什么方法可以使用android样式,我可以在错误状态下将EditText色调设置为红色吗?

mil*_*imi 0

我认为你可以通过编程方式更改它:

if (!trueState){

ColorStateList colorStateList = ColorStateList.valueOf(color)
editText.setSupportBackgroundTintList(colorStateList)

}  
Run Code Online (Sandbox Code Playgroud)

这将为 EditText 提供所需的下划线颜色。