Android: la etiqueta de vista no es correcta en la vista: nulo (CursorAdapter y DataBinding)

Así que ayer finalmente encontré algo de tiempo para probar la nueva biblioteca de DataBinding. Intenté usarlo con CursorAdapter pero no tuve éxito.

Como los Androidguys escriben en su página:

Si está utilizando elementos de enlace de datos dentro de un adaptador ListView o RecyclerView, puede preferir usar:

ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false);
//or
ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);

Pero en CursorAdapter tengo que separar Inflar y Enlazar en 2 métodos. Entonces, ¿cómo implementarlo correctamente? Principalmente obtuve una excepción: la etiqueta de vista no es correcta en la vista: nulo

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();

        // or just
        // return getLayoutInflater().inflate(R.layout.book_list_item, parent, false);
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        // here it fails (and i cannot see source code of bind method)
        BookListItemBinding.bind(view).setBook(new Book(cursor));
    }
}

¿Cómo implementar correctamente el enlace con CursorAdapter?

10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: EXCEPCIÓN FATAL: main 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: Proceso: kandrac. xyz.library, PID: 6231 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: java.lang.RuntimeException: la etiqueta de visualización no es correcta en la vista: nulo 10-14 06:25 : 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en kandrac.xyz.library.databinding.BookListItemBinding.bind (BookListItemBinding.java:135) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz. biblioteca E / AndroidRuntime: en kandrac.xyz.library.MainActivity $ BookCursorAdapter.bindView (MainActivity.java:95) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en 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.library E / AndroidRuntime: en android.widget.ListView.makeAndA ddView (ListView.java:1864) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.widget.ListView.fillDown (ListView.java:698) 10-14 06:25 : 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.widget.ListView.correctTooLow (ListView.java:1474) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime : en android.widget.ListView.fillGap (ListView.java:672) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.widget.AbsListView.trackMotionScroll (AbsListView.java: 4991) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.widget.AbsListView.scrollIfNeeded (AbsListView.java:3418) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.widget.AbsListView.onTouchMove (AbsListView.java:3801) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.widget. AbsListView.onTouchEvent (AbsListView.java:3632) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntim e: en android.view.View.dispatchTouchEvent (View.java:8471) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java : 2399) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2092) 10-14 06: 25: 43.847 6231-6231 /kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en 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 / Android Tiempo de ejecución: en android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTransform edTouchEvent (ViewGroup.java:2405) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10-14 06:25 : 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime : en android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java: 2405) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2405) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view. ViewGroup.dispatchTouchEvent (ViewGroup.java:2106) 10 -14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / Android Tiempo de ejecución: en com.android.internal.policy.impl.PhoneWindow $ DecorView.superDispatchTouchEvent (PhoneWindow.java:2369) 10-14 06:25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1719) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz .library E / AndroidRuntime: en android.app.Activity.dispatchTouchEvent (Activity.java:2742) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en 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: en android.view.View.dispatchPointerEvent (View.java:8666) 10-14 06:25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en un ndroid.view.ViewRootImpl $ ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:4123) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ ViewPostImeInputStage.onProcess. java: 3989) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ InputStage.deliver (ViewRootImpl.java:3544) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ InputStage.onDeliverToNext (ViewRootImpl.java:3597) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime : en android.view.ViewRootImpl $ InputStage.forward (ViewRootImpl.java:3563) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ AsyncInputStage.forward ( ViewRootImpl.java:3680) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ InputStage.apply (ViewRootImpl.java:3571) 10-14 06:25 : 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ AsyncInputStage.apply (ViewRootImpl.java:3737) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ InputStage.deliver (ViewRootImpl.java:3544) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ InputStage.onDeliverToNext (ViewRootImpl.java:3597) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ InputStage.forward (ViewRootImpl.java:3563) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ InputStage.apply (ViewRootImpl.java:3571) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en 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:5807) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / Android Tiempo de ejecución: en 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:5752) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.ViewRootImpl $ WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:5897) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:185) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view. InputEventReceiver.nativeConsumeBatchedInputEvents (Método nativo) 10-14 06: 25: 43.847 6231-6231 / kandrac.xyz.library E / AndroidRuntime: en android.view.InputEven

Respuestas a la pregunta(1)

Su respuesta a la pregunta