Android 数据绑定三元运算符错误

Android data binding ternary operator error

我正在尝试使用数据绑定与 ObservableInt 在三元运算符中绑定 ImageViewenabled 值,如下所示:

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

它完全符合预期。

但是当我将表达式更改为

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

它抛出以下编译错误:

The value of attribute "android:enabled" associated with an element type "ImageView" must not contain the '<' character.

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

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

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