I created a custom bindAdapter in android, and when I pass the color, I want the color to change, this is actually for the im test, which works just to make sure it works. Here is the code: here is my view. Model for data binding:
public class User { public ObservableInt visible; public User(int visible) { this.visible=new ObservableInt(visible); } @BindingAdapter({"app:bindColor"})
}
Now in my XML file that is bound to this model, I expect it to go in color so that the setTextColor method can use it:
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <data class="MainActivityBinder"> <variable name="user" type="com.example.android.floatingactionbuttonbasic.User"/> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_one" android:text="my first textview"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_two" android:text="my second textview" android:visibility="@{user.visible}" app:bindColor="@{'green'}" //see im passing in the green string here android:textColor="@android:color/holo_green_dark"/> </LinearLayout> </layout>
I get a runtime error:
Error:(27, 65) error: package com.example.android.floatingactionbuttonbasic.databinding does not exist Warning:Application namespace for attribute app:bindColor will be ignored. Error:(24, 33) Identifiers must have user defined types from the XML file. een is missing it Error:Execution failed for task ':Application:compileDebugJavaWithJavac'. > java.lang.RuntimeException: Found data binding errors.
if I pulled out material bindingAdapter, it works fine with other material for data binding. Its just this user binding does not work. My project is called floactionbuttonbasic.
source share