Android 使用数据绑定和MVVM处理onClick事件

Android 使用数据绑定和MVVM处理onClick事件,android,mvvm,data-binding,Android,Mvvm,Data Binding,我想使用Databinding在ImageView上设置onClickListener,并从ViewModel(MVVM)控制它 在xml布局中,我用数据绑定实现的所有东西都可以工作。但onClick事件不起作用 我得到这个错误: 错误:找不到符号 XML: viewModel.save(photoObj!!) 视图模型 fun save(photo: Photo){ setWallpaper(photo, false) } 片段: viewModel.save(photoObj

我想使用
Databinding
ImageView
上设置
onClickListener
,并从
ViewModel(MVVM)
控制它

在xml布局中,我用
数据绑定实现的所有东西都可以工作。但onClick事件不起作用

我得到这个错误:

错误:找不到符号

XML:

viewModel.save(photoObj!!)

视图模型

fun save(photo: Photo){
    setWallpaper(photo, false)
}
片段:

viewModel.save(photoObj!!)
我不知道这是什么错误。我尝试了stackoverflow的解决方案,但没有一个解决了我的问题


我想使用
Databinding
MVVM
设置
onClick
侦听器。如果不知道问题出在哪里,请提供任何解决方案。

您需要将照片传递到
保存
功能,就像这样

android:onClick="@{() -> viewModelDetail.save(photo)}"

您还可以尝试修改OnClick Listener,如下所示:
android:onClick=“@{()->viewModelDetail.save(photo)}”

此方法不起作用。我必须为onClick函数添加“()->”。无论如何,谢谢你。你可以看看这里:@android如果你的函数中有一个v:View作为参数,那么你就不需要编写()->部分,但是因为你的函数没有与onClick方法相同的签名,所以你可以从onClick函数调用你的函数。谢谢你,这是有效的。问题是我没有放置photo对象和这个“()->”,我真的不知道这是什么意思。
()->foo()
是一个lambda表达式,不带参数,调用时调用
foo()