Activity A 和 B 包含一个 RecyclerView 并保存类似类型的数据,因此它们使用称为 AViewModel 的通用视图模型
活动 A.java
@BindingAdapter("bind:adapter")
public static void setAdapter(RecyclerView recyclerView, ArrayList<AViewModel> vm) {
AdapterA adapter = ((AdapterA) recyclerView.getAdapter());
if (adapter != null) {
adapter.clearList();
adapter.addAll(vm);
adapter.notifyDataSetChanged();
}
}
活动 B.java
@BindingAdapter("bind:adapter")
public static void setAdapter(RecyclerView recyclerView, ArrayList<AViewModel> vm) {
AdapterB adapter = ((AdapterB) recyclerView.getAdapter());
if (adapter != null) {
adapter.clearList();
adapter.addAll(vm);
adapter.notifyDataSetChanged();
}
}
现在启动 Activity A 应用程序崩溃并显示
AdapterA 不能转换为 AdapterB
怀疑 setAdapter 的类似方法签名。有什么建议可以解决问题的原因吗?
错误日志
E/AndroidRuntime:致命异常:主进程:com. .hackthon.listviewpoc,PID:308 java.lang.ClassCastException:com。.hackthon.listviewpoc.AdapterA 无法转换为 com。.hackthon.listviewpoc.AdapterB 在 com.hackthon.listviewpoc.ActivityB.setAdapter(ActivityB.java:39) 在 com.hackthon.listviewpoc.databinding.ActivityABinding.executeBindings(ActivityABinding.java:145) 在 android.databinding.ViewDataBinding。