Я использую привязку данных для своих настраиваемых полей. Я установил для этого специальный адаптер привязки данных.Ошибка привязки данных: старым значениям должны следовать новые значения. Параметр 2 должен быть того же типа, что и параметр 3
My Binding Adapter выглядит следующим образом:
@BindingAdapter({"created_by,created_at"})
public static void setDetailCreated(TextView textView, String createdBy, long createdAt) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(createdAt);
SimpleDateFormat dateFormat = new SimpleDateFormat("h:mm a, dd MMM yyyy");
String format = textView.getContext().getString(R.string.details_created, createdBy,
dateFormat.format(cal.getTime()));
textView.setText(format);
}
И в моем файле макета у меня есть:
...
<data>
<import type="java.util.Map" />
<import type="com.example.beans.Friend" />
<variable
name="user"
type="com.example.beans.User" />
<variable
name="friends"
type="Map<String, Friend>" />
</data>
....
....
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:created_by="@{friends[user.createdBy].name}"
app:created_at="@{user.createdAt}" />
Но во время работы я получаю ошибку ниже:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'. java.lang.RuntimeException: failure, see logs for details. BindingAdapter setDetailCreated(android.widget.TextView,java.lang.String,long): old values should be followed by new values. Parameter 2 must be the same type as parameter 3.
Я не понимаю, что здесь происходит не так?
Ой ... Ты спас меня! Глупая ошибка! Хороший улов ! – kirtan403