如何正确使用android数据绑定

use*_*186 4 android android-databinding

我有以下带有数据绑定的 XML:

<EditText
    android:id="@+id/addvalue"
    android:inputType="numberDecimal"
    android:digits="0123456789,€"
    android:text="0,00 €"/>
<Button
    android:id="@+id/add"
    android:onClick="@{() -> fragment.addManualPosition(addvalue.text)}"/>
Run Code Online (Sandbox Code Playgroud)

我收到错误

"data binding error ****msg:if getId is called on an expression, it should have an id: addvalue.text"
Run Code Online (Sandbox Code Playgroud)

我根本找不到任何可以帮助我理解此错误的含义或如何修复它的内容。

use*_*186 28

我自己找到的。但是,由于绝对没有关于此错误消息的任何内容,而且极具误导性,因此我会将问题保留在网上。

修正:lambda 是一个完美的Kotlin lambda。然而数据绑定似乎生成Java代码。所以它不能是 addvalue.text 而是 addvalue.getText() 。

  • 这里真正混乱的是自动完成推荐 Kotlin 版本而不是 Java 版本。 (2认同)