为什么不能传递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)
}
}
如果你想通过空,你什么都不能通过