我想使用 Databinding
在 ImageView
上设置一个 onClickListener
并从 ViewModel(MVVM)
控制它.
在 xml 布局中,我使用 Databinding
实现的所有内容都有效。但是 onClick 事件不起作用。
我收到这个错误:
error:cannot find symbol
XML:
<data>
<variable
name="photo"
type="learn.app.papewall.model.Photo" />
<variable
name="viewModelDetail"
type="learn.app.papewall.view.detail.DetailViewModel" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".view.detail.DetailFragment">
<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/image"
android:scaleType="center"
android:onClick="@{viewModelDetail.save()}"
app:imageUrl="@{photo.urls.regular}"/>
<TextView
android:id="@+id/detailUsername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/padding_large"
android:textColor="#000"
android:layout_alignBottom="@+id/image"
android:text="@{photo.user.name}"/>
</RelativeLayout>
View 模型
fun save(photo: Photo){
setWallpaper(photo, false)
}
fragment :
viewModel.save(photoObj!!)
我不知道这是什么错误。我尝试了 stackoverflow 的解决方案,但没有一个解决了我的问题。
我想使用 Databinding
和 MVVM
设置 onClick
Listener 任何解决方案都将不胜感激我不知道是什么问题。
最佳答案
您也可以尝试按如下方式修改您的 onClickListener:
android:onClick="@{() -> viewModelDetail.save(photo)}"
关于android - 使用数据绑定(bind)和 MVVM 处理 onClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54533689/