Как через код изменить background у cardView?

В таком виде код не компилируется:

binding.cardView.setCardBackgroundColor(R.colors.color_1);

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

Автор решения: Yura Ivanov

Данный метод принимает цвет, а не ресурс. Надо так:

binding.cardView.setCardBackgroundColor(
    ContextCompat.getColor(getContext(), R.colors.color_1));
→ Ссылка
Автор решения: Vadik

Внимательно смотрите сигнатуры методов, которые вызываете. Приведенный вами метод setCardBackgroundColor принимает на вход @ColorInt. А то, что вы пытаетесь передать — это айди ресурса, @ColorRes (или @DrawableRes в более широком смысле).

Вам нужно преобразовать айди ресурса в цвет (как уже ответил @Yura):

@ColorInt int color = ContextCompat.getColor(this, R.color.black);
cardView.setCardBackgroundColor(color)

Либо просто воспользоваться другим методом, setBackgroundResource, у которого на входе int с аннотацией @DrawableRes. В качестве @DrawableRes можно передавать @ColorRes:

@ColorRes int colorRes = R.color.black;
cardView.setBackgroundResource(colorRes);

Вот тут можно посмотреть, какие еще бывают аннотации.

→ Ссылка