Getting stuck imageview databindig below are my custom adapter and Imageview. I refer to this [https://stackoverflow.com/questions/40188894/cannot-find-the-setter-for-attribute-with-parameter] but not getting solution - can anyone help? Thanks.
@BindingAdapter("app:image_url")
fun loadImage(view: ImageView, logoUrl: String?) {
if (logoUrl == null) {
view.setImageResource(R.drawable.alert_dark_frame)
} else {
Picasso.with(view.getContext())
.load(logoUrl)
.placeholder(R.mipmap.sym_def_app_icon)
.into(view)
}
}
<data>
<import type="android.view.View" />
<variable name="abc"
type="com.example.viewmodel.Result"/>
</data>
<ImageView
android:id="@+id/circleImageView"
android:layout_width="100dp"
android:layout_height="100dp"
app:image_url="@{abc.picture.thumbnail}"
/>
Can you try adding the plugin in your build.gradle (app) file
apply plugin: 'kotlin-kapt'
This is normal error because the class ImageView doesn't contain a method setImageUrl, so you need to do a workaround for that by creating a class that extends ImageView and contains a method named setImageUrl that takes a String as parameter and set the image inside that method using Picasso library:
public class MyImageView extends ImageView {
// ... here is the constructors
public void setImageUrl(String url) {
Picasso.get().load(url).into(this);
}
}
and after that you can use it in the xml like this:
<com.yourPackage.MyImageView
android:id="@+id/circleImageView"
android:layout_width="100dp"
android:layout_height="100dp"
app:image_url="@{abc.picture.thumbnail}"
/>
I just changed from
app:srcCompat
to
android:src
in my case when using it together with databinding.Working fine now.Hope this helps.
OLD CODE
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:textSize="16sp"
android:fontFamily="@font/avenir_roman"
android:textColor="@color/textColor"
app:srcCompat="@{model.image}"/>
NEW CODE
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:textSize="16sp"
android:fontFamily="@font/avenir_roman"
android:textColor="@color/textColor"
android:src="@{model.image}"/>