gpt4 book ai didi

Android BindingAdapter error.NonExistentClass

转载 作者:行者123 更新时间:2023-11-29 02:39:49 31 4
gpt4 key购买 nike

这是我的 BindingAdapter

@InverseBindingMethods({
@InverseBindingMethod(type = RecyclerView.class, attribute = "lastAdapter", method = "getLastAdapter"),
})
public class RecyclerViewBindingAdapter {
@BindingAdapter(value = {"lastAdapter"}, requireAll = false)
public static void setLastAdapter(RecyclerView view, LastAdapter adapter) {
view.setAdapter(adapter);
}

@InverseBindingAdapter(attribute = "lastAdapter")
public static LastAdapter getLastAdapter(RecyclerView view) {
return (LastAdapter) view.getAdapter();
}
}

我在我的 gradle 上添加了 RecyclerView 依赖:

compile "com.android.support:recyclerview-v7:25.3.1"

这是我在布局中使用的方式:

<android.support.v7.widget.RecyclerView
app:lastAdapter = "@{viewModel.adapter}"
... />

在展开此布局后,我已经设置了 viewModel 绑定(bind)变量。但是每当我运行我的代码时,gradle 总是显示以下错误

Error:(48, 34) Cannot find the setter for attribute 'app:lastAdapter' with parameter type error.NonExistentClass on android.support.v7.widget.RecyclerView. 

我可以通过从我的布局中删除任何 app:lastAdapter 然后清理和重建,再次重写那些 app:lastAdapter 属性然后重建项目来解决这个问题,一切正常.

这不是一个方便的解决方案。

最佳答案

正如 George 在上面的评论中所说,“BindingAdapter 采用 LastAdapter,但适配器似乎是不同的类型”这就是变量的分配方式:

var adapter = LastAdapter(data, BR.item).map<MenuLinked, MenuItemBinding>(R.layout.menu_item)

DataBinding 库似乎无法确定来自 Kotlin 的隐式数据类型声明,因此需要显式定义:

var adapter : LastAdapter = LastAdapter(data, BR.item).map<MenuLinked, MenuItemBinding>(R.layout.menu_item)

关于Android BindingAdapter error.NonExistentClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45010313/

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