- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的 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/
我在我的项目中添加了一个新的 Retrofit 接口(interface),其中包含几个用 @GET 和 @HEADERS 注释注释的端点,在将所述接口(interface)注入(inject)存储库
这是我的 BindingAdapter @InverseBindingMethods({ @InverseBindingMethod(type = RecyclerView.class
我想使用 Mapstruct 将内部模型映射到 Kotlin 项目中由 OpenApi3 codegen 生成的模型。 当我编译项目时,Mapstruct 似乎无法找到由 OpenApi3 codeg
我正在使用 Dagger 2 和 Kotlin 进行 Android 开发。我的项目也是一个多模块项目。我的 settings.gradle 文件是这样的: include :app include
我是一名优秀的程序员,十分优秀!