1
我有一個單選按鈕:單選按鈕與數據綁定和lambda表達式onCheckedChanged
<RadioButton
android:id="@+id/rdioA"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="@{!q.b}"
android:onCheckedChanged="@{(cb, isChecked) -> {if (isChecked) q.setB(false)}}"
android:text="AAA"/>
變量 'Q' 的定義爲:
<data>
<import type="android.view.View"/>
<variable name="q" type="com.example.Q"/>
</data>
在Q.java的功能是:
public void setB(boolean b) {
this.b = b;
}
編譯錯誤我得到的是:
/Users/../view_d.xml
Error:(60, 53) Syntax error: extraneous input '=' expecting {<EOF>, '.', '::', '[', '+', '-', '*', '/', '%', '<<', '>>>', '>>', '<=', '>=', '>', '<', 'instanceof', '==', '!=', '&', '^', '|', '&&', '||', '?', '??'}
Error:Execution failed for task ':app:compileDevDebugJavaWithJavac'.
> java.lang.RuntimeException: Found data binding errors.
如果我使用
沒有問題 - 它的工作原理。
這工作,謝謝。我有另一個調用該類(它是BaseObservable類型)的函數的問題,所以我需要通過另一個類將該調用重新路由到q.setB(),該類也在佈局文件中註冊。但這是我想的另一個問題。 – rajath