Where to place android BindingAdapter method?
You place it in your model class.
Example:
XML:
<data>
<variable
name="item"
type="com.yourpackage.Model"/>
</data>
......
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@{item.resId}"/>
Model:
public class Model {
@DrawableRes
private final int resId;
public Model(int resId) {
this.resId = resId;
}
public int getResId() {
return resId;
}
@BindingAdapter ("android:src")
public static void setImageResource(ImageView imageView, int resource){
imageView.setImageResource(resource);
}
}
After navigating through the internet I've finally found some info from one of the developers themselves. I wish they would have been more clear on the basics in the documentation.
Quote:
Binding adapters are annotated methods in any class that are used to do just this. Typically, you’d organize your adapters into [-a] classes based on the target View type.
This obviously means that at compile time all methods in any class with the annotation BindingAdapter will generate the BindingAdapter.