Создайте класс Converter и используйте его для преобразования enum в цвет
Макет:
<import type="*.Converter"/>
...
android:background="@{Converter.enumToColor(context, exercise.setState)}"
Класс преобразователя:
class Converter {
fun enumToColor(context: Context ,enum: ExerciseSetState) : Int {
return when (enum){
ExerciseSetState.NOT_STARTED -> getColor(context, R.color.colorAccent)
ExerciseSetState.PASSED -> getColor(context, R.color.colorAccent)
ExerciseSetState.FAILED -> getColor(context, R.color.colorAccent)
}
}
}
getColor вспомогательный метод:
fun getColor(context: Context, colorId: Int): Int {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
context.resources.getColor(colorId, null)
} else {
context.resources.getColor(colorId)
}
}
и лучше изменить setState на getState здесь:)