vm具有一个isWin
值,该值只能具有0
或1
。
为此,我想利用Data Binding
。
我访问vm
中的<data>
,并且我这样连接:
@{vm.isWin == 1 ? @drawable/win_true : @drawable/win_false}
但是,这似乎不起作用。
我得到红色底线:
'!=', '%', '==', '(', ..., '>=', '>>' or '>>>' expected, got ':'
This由Google引用。
完整的activity_main.xml
是这样的:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="vm"
type="io.monolabs.asscnfc.vm.ResultViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src = "@{vm.isWin == 1 ? @drawable/win_true : @drawable/win_false}"/>
</LinearLayout>
</layout>
答案 0 :(得分:2)
我也遇到过这个问题。通过从变量名称中删除'is'关键字来解决。javabeans尝试生成相同名称的getter和setter。因为“ is”仅在方法名称之前出现。