binding-collection-adapter icon indicating copy to clipboard operation
binding-collection-adapter copied to clipboard

item中绑定adapter报错binding:adapter="@{vm.mAdapter}"

Open bujinhai opened this issue 4 years ago • 9 comments

错误: 无法将类 BindingRecyclerViewAdapters中的方法 setAdapter应用到给定类型; 需要: RecyclerView,ItemBinding<? super T>,List<T>,BindingRecyclerViewAdapter<T>,ItemIds<? super T>,ViewHolderFactory,AsyncDifferConfig<T> 找到: RecyclerView,ItemBinding<ContactItemViewModel>,ObservableList<ContactItemViewModel>,ContactAdapter,ItemIds,ViewHolderFactory,AsyncDifferConfig 原因: 推论变量 T 具有不兼容的限制范围 等式约束条件: CompanyInfo,ContactItemViewModel 上限: ContactItemViewModel,Object 其中, T是类型变量: T扩展已在方法 <T>setAdapter(RecyclerView,ItemBinding<? super T>,List<T>,BindingRecyclerViewAdapter<T>,ItemIds<? super T>,ViewHolderFactory,AsyncDifferConfig<T>)中声明的Object

bujinhai avatar Apr 24 '20 08:04 bujinhai

Thank you for reporting your issue. In order to look into it, can you please provide a sample project and clear steps to reproduce?

evant avatar Apr 25 '20 15:04 evant

Thank you for reporting your issue. In order to look into it, can you please provide a sample project and clear steps to reproduce?

android.build.gradle version 3.5.3 and setAdapter in Activity/Fragment(not in ViewModel), This is different from the sample code

nonelg avatar May 01 '20 15:05 nonelg

Thank you for reporting your issue. In order to look into it, can you please provide a sample project and clear steps to reproduce?

If I define the adapter in the ViewModel like the simple code, there is no problem, But I don't know if this code will cause a memory leak?

nonelg avatar May 01 '20 15:05 nonelg

  1. build.gradle Modify upgrade in file: classpath 'com.android.tools.build:gradle:3.6.3'

  2. gradle-wrapper.properties Modify upgrade in file: distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip

The following questions will appear: E:\Android\AndroidStudioProjects\MVVMHabit-master\app\build\generated\ap_generated_sources\debug\out\com\goldze\mvvmhabit\databinding\FragmentNetworkBindingImpl.java:158: 错误: 无法将类 BindingRecyclerViewAdapters中的方法 setAdapter应用到给定类型; me.tatarka.bindingcollectionadapter2.BindingRecyclerViewAdapters.setAdapter(this.mboundView2, viewModelItemBinding, viewModelObservableList, adapter, (me.tatarka.bindingcollectionadapter2.BindingRecyclerViewAdapter.ItemIds)null, (me.tatarka.bindingcollectionadapter2.BindingRecyclerViewAdapter.ViewHolderFactory)null); ^ 需要: RecyclerView,ItemBinding<T>,List<T>,BindingRecyclerViewAdapter<T>,ItemIds<? super T>,ViewHolderFactory 找到: RecyclerView,ItemBinding<NetWorkItemViewModel>,ObservableList<NetWorkItemViewModel>,BindingRecyclerViewAdapter<CAP#1>,ItemIds,ViewHolderFactory 原因: 推断类型不符合等式约束条件 推断: CAP#1 等式约束条件: CAP#1,NetWorkItemViewModel 其中, T是类型变量: T扩展已在方法 <T>setAdapter(RecyclerView,ItemBinding<T>,List<T>,BindingRecyclerViewAdapter<T>,ItemIds<? super T>,ViewHolderFactory)中声明的Object 其中, CAP#1是新类型变量:

skyofsky avatar May 23 '20 03:05 skyofsky

Project address in question:https://github.com/goldze/MVVMHabit uses binding collection adapter

skyofsky avatar May 23 '20 03:05 skyofsky

study

zhengpengzheng avatar Dec 22 '20 05:12 zhengpengzheng

怎么解决呢

zhouzitao avatar Apr 27 '21 01:04 zhouzitao

我也遇到这个问题了,如何解决?(I am meet this problem too, how can i solve this problem?)

android-taoge avatar May 19 '21 03:05 android-taoge

在xml导入的类名后面加入 <Object>试试.

<variable
            name="ViewModel"
            type="xxx.xxx.DataListViewModel&lt;Object>" />

lcj0304 avatar Mar 07 '22 12:03 lcj0304