首页 > 解决方案 > Android数据绑定三元运算符错误

问题描述

我正在尝试将using 数据绑定的enabled值与in 三元运算符绑定,如下所示:ImageViewObservableInt

<variable
            name="myInt"
            type="android.databinding.ObservableInt"/>
...
<ImageView
        ...
        android:enabled='@{myInt > 1 ? false : true}'
        ...
        />

它完全按预期工作。

但是当我将表达式更改为

android:enabled='@{myInt < 1 ? false : true}'

它会引发以下编译错误:

与元素类型“ImageView”关联的属性“android:enabled”的值不能包含“<”字符。

为什么我可以检查是否myInt大于1但不能检查它是否小于1?

标签: androiddata-bindingternary-operatorandroid-databinding

解决方案


您需要为 xml 转义字符,如下所示:

android:enabled="@{myInt &lt; 1 ? false : true}"

推荐阅读