如何使用Android数据绑定LiveData设置app:backgroundTint

如何使用Android数据绑定LiveData设置app:backgroundTint,android,Android,val inputUnderLineColor=MutableLiveData(R.color.red2) app:backgroundTint=“@{viewModel.inputUnderLineColor}” 我想根据状态设置EditText下划线颜色值,但出现以下错误 找不到接受参数类型“androidx.lifecycle.MutableLiveData”的setter 如何解决这个问题???您可以像下面那样使用它ContextCompat.getColor() ... 1。确保如

val inputUnderLineColor=MutableLiveData(R.color.red2)

app:backgroundTint=“@{viewModel.inputUnderLineColor}”

我想根据状态设置EditText下划线颜色值,但出现以下错误

找不到接受参数类型“androidx.lifecycle.MutableLiveData”的setter


如何解决这个问题???

您可以像下面那样使用它
ContextCompat.getColor()


...
1。确保如上所示导入ContextCompat


2。您可以自动将“context”作为ContextCompat.getColor()的方法参数,因为它将自动解析为视图的上下文。

我认为您需要在MutableLiveData中展开该值,是否尝试使用此方法
@{viewModel.inputUnderLineColor.value}
R.color.red2
不是颜色本身,而是颜色资源的资源id。@ADM如何设置背景色?我想知道如何使用数据绑定设置背景色,不是如何使用数据绑定这对我很有效,问题是
@ColorRes
@ColorInt
注释让我困惑,但现在我意识到了。非常感谢。随时欢迎:)请你投票表决我的答案!
 <layout>
         <data>
                <import type="android.support.v4.content.ContextCompat"/>
                <variable name="viewModel" type="com.example.myapp.yourObject" />
            </data>
        ...
         <EditText 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{data.text}"
                android:textColor="@{ContextCompat.getColor(context, viewModel.inputUnderLineColor)}" />
    </layout>