Почему не устанавливается цвет CardVIew в RecyclerView?

У CardView никак не устанавливается цвет программно. CardView является элементом RecyclerView.

onBindViewHolder:

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        when (holder) {
            is TimerViewHolder -> {
                holder.bind(items[position])
            }
        }
    }

class in Adapter:

class TimerViewHolder
constructor(itemView: View) : RecyclerView.ViewHolder(itemView) {
    private val cardView: CardView = itemView.card_view
    private val colors: ArrayList<Int> = arrayListOf(
        R.color.timer_blue,
        R.color.timer_green,
        R.color.timer_orange,
        R.color.timer_purple,
        R.color.timer_red
    )
    
    fun bind(timer: Timer) {
        cardView.setCardBackgroundColor(colors[(0 until colors.size).random()]) // не работает
    }
}

Ответы (1 шт):

Автор решения: Pentiux

Из комментариев: R.color.timer_blue - colorId а не сам Color? context.resources.getColor(R.color.color_id, context.activity.theme) - по памяти точно не помню обращения, не в IDE – Pentiux

Да, itemView.context.getColor(R.color.timer_blue) помогло. – Dewerro

На всякий: этот метот, насколько я помню, deprecated. Так что стоит использовать метод с темой, просто дописать получение темы, как в моем сообщении.

→ Ссылка