活性A和B含有RecyclerView和保持類似種類的數據,因此它們使用稱爲AViewModel訪問同一視圖模型在不同recyclerViews
活動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();
}
}
現在關於開展活動A應用程序崩潰,並顯示
AdapterA不能轉換到適配器B
懷疑爲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) 在 機器人。 databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding.java:379) 在 android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:351) 在android.databinding.ViewDataBinding $ 6.run(ViewDataBinding.java:178) 在 機器人.databinding.ViewDataBinding $ 5.onViewAttachedToWindow(ViewDataBinding.java:146) 在android.view.View.dispatchAttachedToWindow(View.java:14531) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2836) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843 ) at android.view.ViewGroup.dispa tchAttachedToWindow(ViewGroup.java:2843) 在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1364) 在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 在 android.view.ViewRootImpl $ TraversalRunnable .run(ViewRootImpl.java:6013) at android.view.Choreographer $ CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer。doCallbacks(Choreographer.java:670) 在android.view.Choreographer.doFrame(Choreographer.java:606) 在 android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:844) 在android.os.Handler .handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main (ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(Zygo teInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
粘貼您的完整錯誤日誌 –