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!

One Solution collect form web for “Android Data Binding: no puede encontrar el setter para el atributo”

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 
  • No puede encontrar el símbolo BR en vinculación de datos de Android
  • ¿Cómo usar com.android.databinding en el módulo (estudio de Android)?
  • Enlace de datos de Android layout_width y layout_height
  • Ejemplo de enlace de datos de 2 vías de android no funcionan como se describe
  • Problema con enlace de datos usando Kotlin para Android
  • Uso de enlace de datos en error android: package *. *. Databinding no existe
  • El enlace de datos de Android no funciona con View 'android: tag' property
  • ¿Es posible unir un ObservableField a otro?
  • Android: ¿Variable vinculante y pasando para incluir trabajo de diseño de etiquetas?
  • Spinner enlace de datos de 2 vías
  • Cómo pasar ObservableField dentro del control interno
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.