tutorial studio example español ejemplo databinding data java android data-binding

studio - Error de enlace de datos de Android: ejecución fallida java.lang.RuntimeException:



data binding c# (3)

Intenté hacer un ejemplo de ejemplo analógico desde aquí: http://www.mutualmobile.com/posts/using-data-binding-api-in-recyclerview Y todo funciona correctamente, excepto la URL de imagen vinculante. Recibí el error: Error: ejecución fallida para la tarea '': aplicación: compileDebugJavaWithJavac''.

java.lang.RuntimeException: Se encontraron errores de enlace de datos. **** / error de enlace de datos **** msg: No se puede encontrar el setter para el atributo ''app.imageUrl'' con el tipo de parámetro java.lang.String. archivo: D: / Proyectos / aplicación / src / main / res / layout / view_simple_item.xml loc: 43: 32 - 43:47 **** / data binding error ****

Mi diseño:

... <data> <variable name="item" type="com.example.Item" /> </data> ... <ImageView android:id="@+id/iv_item" app.imageUrl="@{item.imageUrl}" ... /> ...

Mi adaptador:

package com.example.adapters; import android.databinding.BindingAdapter; import android.widget.ImageView; import com.squareup.picasso.Picasso; public class CustomBindingAdapter { @BindingAdapter("bind:imageUrl") public static void loadImage(ImageView imageView, String url) { Picasso.with(imageView.getContext()).load(url).into(imageView); } }


Encontrado mi problema En lugar de:

app.imageUrl="@{item.imageUrl}"

Debe ser:

app:imageUrl="@{item.imageUrl}"


Establezca el argumento de la anotación BindingAdapter en "app: imageUrl". Entonces debes tener esto:

@BindingAdapter("app:imageUrl")

en lugar de esto:

@BindingAdapter("bind:imageUrl")

Y también lo que dice @Alexander Myznikov: cambie app.imageUrl a la app:imageUrl


Solo intente cambiar el nombre de la referencia dentro de @BindingAdapter

@BindingAdapter({"bind:image_url"}) public static void loadImage(ImageView imageView, String url) { Picasso.with(imageView.getContext()).load(url).into(imageView); }

Y en su diseño esto:

... <data> <variable name="item" type="com.example.Item" /> </data> ... <ImageView android:id="@+id/iv_item" app:image_url="@{item.imageUrl}" ... /> ...