数据绑定:将null作为参数传递

问题描述

如何通过数据绑定将null作为参数传递?

什么时候来

android:onClick="@{() -> viewmodel.switchFunction(null)}"

我得到cannot find method switchFunction(java.lang.Object)例外。

我的viewmodel函数

fun switchFunction(param: MyClass?) {
}

解决方法

事实证明,这非常容易-只需指定null的类型即可:

<data>
    <import type="classes.MyClass" />
</data>
...
android:onClick="@{() -> viewModel.switchFunction((MyClass) null)}"
,

我认为你不能那样做。生成的数据绑定代码会自动检查空值,并避免空指针异常

https://developer.android.com/topic/libraries/data-binding/expressions#null_coalescing_operator