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



为什么不能传递null值?如何修复?我在文档中找不到任何提示。

错误

****/数据绑定错误***消息:在类kr.co.app.MyActivity.MyListener文件中找不到方法onClick(java.lang.Object,java.lang.Oobject(:/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>

我今天刚刚遇到这个问题,我所做的基本上是将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>

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

如果您打算传递null,为什么不能为onClick方法分配默认值

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

如果你想通过空,你什么都不能通过

最新更新