Android Data Binding: no puede encontrar el setter para el atributo

No estoy seguro de cómo funciona, pero de acuerdo con este post es posible enlazar listener específico mediante el uso de diferentes espacios de nombres.

Quería hacer lo mismo con un searchview y enlazar un QueryTextListener a él, pero me sale el siguiente error:

Cannot find the setter for attribute 'bind:setOnQueryTextListener' with parameter type android.widget.SearchView.OnQueryTextListener. 

Lo que hice en mi ViewModel:

 public class MembersFragmentViewModel extends BaseObservable { private Context context; private MembersAdapter adapter; private RecyclerView recyclerView; public MembersFragmentViewModel(Context context, MembersAdapter adapter, RecyclerView recyclerView) { this.context = context; this.adapter = adapter; this.recyclerView = recyclerView; } public SearchView.OnQueryTextListener getQueryTextListener(){ return new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String query) { List<Contact> filteredModelList = filter(adapter.getContacts(), query); adapter.animateTo(filteredModelList); if(recyclerView != null) recyclerView.scrollToPosition(0); return true; } }; } //Code ... 

Y el xml:

Mi espacio de nombres se declara en la etiqueta de diseño como esto:

 xmlns:bind="http://schemas.android.com/apk/res-auto" 

Y mi SearchView:

 <android.support.v7.widget.SearchView android:id="@+id/searchview" android:layout_width="match_parent" android:layout_height="40dp" android:background="@drawable/rounded_search_view_background" bind:setOnQueryTextListener="@{viewModel.QueryTextListener}"> </android.support.v7.widget.SearchView> 

Esta es mi etiqueta de datos:

 <data> <variable name="viewModel" type="mypackagename.viewmodel.members.MembersFragmentViewModel"/> </data> 

Muchas gracias por cualquier pista!

En mi caso la respuesta era simplemente un nombre de paquete incorrecto.

Mi SearchView se declaró en xml con el siguiente nombre de paquete:

 android.support.v7.widget.SearchView 

Y el paquete que usé en el ViewModel fue

 android.widget.SearchView 
  • Problema con enlace de datos usando Kotlin para Android
  • Posible motivo de "Error: no se pueden generar carpetas de vista java.lang.NullPointerException"
  • ¿Cómo usar com.android.databinding en el módulo (estudio de Android)?
  • No se puede encontrar el GETTER para el atributo 'app: vm' con el tipo de valor Boolean
  • El enlace de datos de Android no funciona con los atributos <merge>
  • DataBinding en android
  • Kotlin y conexión de datos de Android
  • Android Databinding: el paquete no existe
  • Error de DataBinding de Android. No se pudo encontrar el complemento
  • Vinculación de datos de Android - Referencia para ver
  • El enlace de datos de Android no funciona con View 'android: tag' property
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.