如何在Android数据绑定中传递空参数

ill*_*nJJ 5 android-databinding

为什么不能传递空值?怎么解决?我无法从Document 中找到任何提示。

错误

****/ 数据绑定错误 ****msg:cannot find method onClick(java.lang.Object, java.lang.Object) in class kr.co.app.MyActivity.MyListener file:/Users/jujaeho/projects /app/src/main/res/layout/activity_my.xml loc:24:71 - 24:106 ****\ 数据绑定错误****

代码

class MyActivity {
  interface MyListener {
    fun onClick(abc: ABC?, count: Int?)
  }
}

<layout>
  <data>
  <variable
    name="handler"
    type="kr.co.app.MyActivity.MyListener" />
  </data>
  <View
    ...
    android:onClick="@{() -> handler.onClick(null, null)}" />
</layout>
Run Code Online (Sandbox Code Playgroud)

idr*_*mbi 11

我今天刚遇到这个问题,我做的基本上就是将null参数强制转换为方法参数中期望的类型。在你的情况下,这应该是这样的:

<layout>
  <data>
  <import type="ABC" /> // just an illustration, specify the full package
  <variable
    name="handler"
    type="kr.co.app.MyActivity.MyListener" />
  </data>
  <View
    ...
    android:onClick="@{() -> handler.onClick((ABC) null, (int) null)}" />
</layout>
Run Code Online (Sandbox Code Playgroud)

我不确定int转换,但您可以尝试或使用Integer包装类进行转换。