drawable上的Android数据绑定

drawable上的Android数据绑定,android,android-layout,mvvm,android-drawable,android-databinding,Android,Android Layout,Mvvm,Android Drawable,Android Databinding,我有两个图形绘图表,rounded_corners.xml和rounded_corners_red.xml,分别用于显示有效文本输入和无效文本输入 我希望在用户单击登录按钮时动态设置此drwable,以便如果有效文本显示rounded_corners.xml,如果无效,则显示rounded_corners_red.xml 下面是我如何将其放入布局xml中的 <EditText android:id="@+id/et_ip" android:layout_width="match_paren

我有两个图形绘图表,rounded_corners.xml和rounded_corners_red.xml,分别用于显示有效文本输入和无效文本输入

我希望在用户单击登录按钮时动态设置此drwable,以便如果有效文本显示rounded_corners.xml,如果无效,则显示rounded_corners_red.xml

下面是我如何将其放入布局xml中的

<EditText android:id="@+id/et_ip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@={systemSettings.isValid ? @drawable/rounded_corners : @drawable/rounded_corners_red}"
android:text="@={systemSettings.serverIP, default=@string/ip_host}"
android:textColor="#000000" />
有人知道为什么会这样吗?
谢谢。

您的声明是双向绑定的
@={}

@={systemSettings.isValid ? @drawable/rounded_corners : @drawable/rounded_corners_red}`
这就是为什么您会发现这样的错误,即表达式

不能倒置

它甚至直接给了你理由:

三元运算符的条件必须是常数


但是,由于您刚刚获得可绘制资源,因此只需从表达式中删除
=

gradle console中有哪些错误?@EugenMartynov-gradle build完成时有9个错误和2个警告-这8个错误是因为在这个主要错误更改@={}到@{}是的基础上,数据绑定失败。谢谢,这就是原因。
@={systemSettings.isValid ? @drawable/rounded_corners : @drawable/rounded_corners_red}`