gpt4 book ai didi

android - 在数据绑定(bind)中找不到属性的 setter

转载 作者:IT老高 更新时间:2023-10-28 13:39:03 30 4
gpt4 key购买 nike

我在我的应用程序中使用 LiveData、DataBinding 和 Kotlin。

我为 RecyclerView 定义了一个绑定(bind)适配器,如下所示:

   class MainListBindings {

private val TAG = "TasksListBindings"

companion object {

@JvmStatic
@SuppressWarnings("unchecked")
@BindingAdapter("main_items")
fun setItems(recyclerView: RecyclerView, items: MutableLiveData<List<Homeitem>>? = null) {

val adapter: RecyclerMainAdapter = recyclerView.adapter as RecyclerMainAdapter
//prevent use of null list
items?.let {

adapter.swapData(items)
}
}

}
}

我的 reyclerView 在 XML 中分配给这个 bindingAdapter,如下所示:

  <android.support.v7.widget.RecyclerView
android:id="@+id/main_recycler"
app:main_items="@{viewmodel.items}"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

在我的 ViewModel 中,我使用了

val items = MutableLiveData<List<Homeitem>>()

创建列表。

但我在构建应用程序时遇到此错误:

Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'app:main_items' with parameter type android.arch.lifecycle.MutableLiveData<java.util.List<project.data.pojo.Homeitem>> on android.support.v7.widget.RecyclerView. file:/home/user/Yara/bazinama_mag/bazinama/app/src/main/res/layout/fragment_main.xml loc:22:24 - 22:38 ****\ data binding error ****

最佳答案

这个错误可能有不同的原因,但就我而言,问题是因为我没有添加 apply plugin: 'kotlin-kapt'apply plugin: 'kotlin -android-extensions' 在我的 Gradle 中。

添加这些插件后,您必须将 annotationProcessors 替换为 kapt

在那之后,一切可能都会顺利。

关于android - 在数据绑定(bind)中找不到属性的 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51926663/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com