Ошибка троичного оператора привязки данных Android - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь связать enabled значение ImageView, используя привязку данных с ObservableInt в троичном операторе, как это:

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

Работает точно так, как ожидалось.

Но когда я меняю выражение на

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

Выдает следующую ошибку компиляции:

Значение атрибута «android: enabled», связанного с типом элемента «ImageView», не должно содержать символ «<». </p>

Почему я могу проверить, если myInt больше 1, но не может проверить, если он меньше 1?

1 Ответ

0 голосов
/ 08 мая 2018

Вам нужно экранировать символы для XML примерно так:

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