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 
  • Android Databinding atributo xml duplicado
  • Spinner enlace de datos de 2 vías
  • Enlace de datos de Android layout_width y layout_height
  • No se puede encontrar el GETTER para el atributo 'app: vm' con el tipo de valor Boolean
  • No puede encontrar el símbolo BR en vinculación de datos de Android
  • Android databinding - Cómo obtener dimensiones desde dimens.xml
  • ¿Algún problema o problema significativo con la Biblioteca de Databinding de Android?
  • Banda de datos Android @BindingConversion falla para int a cadena
  • Data Binding Android - El parámetro de tipo T tiene límites superiores incompatibles: ViewDataBinding y MainActivity
  • Android dataBinding - @BindingAdapter nombre de la aplicación personalizada que se ignora
  • Android Databinding: el paquete no existe
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.