Привязка данных Android Recycleview устанавливает цвет карты с помощью colorStateList

Я пытаюсь установить цвет фона карты внутри recycleview через привязку данных.

У меня есть это в макете xml для карт: app:cardBackgroundColor="@{user.gender.equals(`M`) ? @color/card_male_color : @color/card_female_color }"

card_male_color.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:color="@color/selectedColor" android:state_selected="true"/>
   <item android:color="@color/selectedColor" android:state_pressed="true"/>
   <item android:color="@color/card_color_male"/>
</selector> 

Но при выборе карты фон не меняет цвет.


person tecn603    schedule 29.11.2020    source источник


Ответы (1)


Я решил использовать это в макете карты:

app:cardBackgroundColor="@{user.gender.equals(`M`) ? (ContextCompat.getColorStateList(context, R.color.card_male_color)) : (ContextCompat.getColorStateList(context, R.color.card_female_color))}"

tools:context=".MainActivity"

Импорт этого:

<data>
    <import type="androidx.core.content.ContextCompat"/>
    <import type="mypackage.R"/>
</data>
person tecn603    schedule 29.11.2020