So, yesterday, I finally took the time to try the new DataBinding library. I tried using it with a CursorAdapter, but without success.
How Androidguys are written on their page:
If you use data binding elements inside a ListView or RecyclerView adapter, you can use:
ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false); //or ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);
But in the CursorAdapter, I have to separate Inflating and Binding into 2 methods. So, how to implement it correctly? Basically, I have an Exception: view tag incorrect in view: null
private class BookCursorAdapter extends CursorAdapter { public BookCursorAdapter(Context context) { super(context, null, 0); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { BookListItemBinding binding = DataBindingUtil.inflate(getLayoutInflater(), R.layout.book_list_item, parent, false); return binding.getRoot();
How to implement binding with CursorAdapter?
10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: FATAL EXCEPTION: main 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: Process: kandrac. xyz.library, PID: 6231 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: java.lang.RuntimeException: view tag is incorrect in view: null 10-14 06: 25: 43.847 6231 -6231 / kandrac.xyz.library E / AndroidRuntime: at kandrac.xyz.library.databinding.BookListItemBinding.bind (BookListItemBinding.java:135) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at kandrac.xyz.library.MainActivity $ BookCursorAdapter.bindView (MainActivity.java:95) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.widget.CursorAdapter.getView (CursorAdapter.java:254) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.widget.AbsListView.obtainView (AbsListView.java:2347) 10 -14 06: 25: 43.847 6231-6231 / kandrac.xyz.li brary E / AndroidRuntime: at android.w idget.ListView.makeAndAddView (ListView.java:1864) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.widget.ListView.fillDown (ListView.java:698) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.widget.ListView.correctTooLow (ListView.java:1474) 10-14 06:25: 43.847 6231-6231 / kandrac.xyz. E / AndroidRuntime library: at android.widget.ListView.fillGap (ListView.java:672) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.widget.AbsListView.trackMotionScroll ( AbsListView.java:4991) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.widget.AbsListView.scrollIfNeeded (AbsListView.java:3418) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.widget.AbsListView.onTouchMove (AbsListView.java:3801) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.widget.AbsListView.onTouchEvent (AbsListView.java:3632) 10-14 06: 25: 4 3.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.View.dispatchTouchEvent (View.java:8471 ) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: in android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2399) 10-14 06: 25: 43.847 6231-6231 / kandrac .xyz.library E / AndroidRuntime: at android.view.Vie wGroup.dispatchTouchEvent (ViewGroup.java:2092) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06 : 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent (ViewGroup. java: 2106) 10-14 06: 25: 43,847 6231-6231 / ka ndrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06: 25: 43.847 6231 -6231 / kandrac.xyz.library E / AndroidRuntime: at android.view. ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06 : 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent (ViewGroup. java: 2106) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06: 25: 43.847 6231- 6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at com. android.internal.policy.impl .PhoneWindow $ DecorView.superDispatchTouchEvent (PhoneWindow.java:2369) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent PhoneWindow.superDispatchTouchEvent .java: 1719) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.app.Activity.dispatchTouchEvent (Activity.java:2742) 10-14 06: 25: 43.847 6231 -6231 / kandrac.xyz.library E / AndroidRuntime: on android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:60) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent (PhoneWindow.java:2330) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android .view.View.dispatchPointerEvent (View.java:8666) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java : 4123) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ ViewPostImeInputStage.onProcess (ViewRootImpl.java:3989) 10-14 06: 25: 43.847 6231 -6231 / kandrac.xyz.library E / AndroidRuntime: at androi d.view.ViewRootImpl $ InputStage.deliver (ViewRootImpl.java:3544) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime : at android.view.ViewRootImpl $ InputStage.onDeliverToNext (ViewRootImpl. java: 3597) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ InputStage.forward (ViewRootImpl.java:3563) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ AsyncInputStage.forward (ViewRootImpl.java:3680) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime : at android.view.ViewRootImpl $ InputStage.apply (ViewRootImpl.java:3571) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ AsyncInputStage.apply ( ViewRootImpl.java:3737) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ InputStage.deliver (ViewRootImpl.java:3544) 10-14 06:25 : 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ InputStage.onDeliverToNext (ViewRootImpl.java:3597) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ InputStage.forward (Vie wRootImpl.java:3563) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ InputStage.apply (ViewRootImpl.java:3571) 10-14 06:25 : 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl $ InputStage.deliver (ViewRootImpl.java:3544) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.javaโ807) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl. java: 5781) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.javaโ752) 10-14 06: 25: 43.847 6231- 6231 / kandrac.xyz.library E / Android Runtime: at android.view.ViewRootImpl $ WindowInputEventReceiver.onInputEvent (ViewRootImpl.javaโ897) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java: 185) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents (native method) 10 14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: at android.view.InputEven