我写过这个BindingConversion:
@BindingConversion
public static String convertDateToFormat(Date date, String format) {
return new SimpleDateFormat(format).format(date);
}
在我的布局文件中:
<TextView
android:text="@{BindingUtils.convertDateToFormat(schedule.dateStart, `EEEE`)}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView2"/>
但它无法建立。
有人可以解释我如何将多个参数传递给绑定转换吗?
答案 0 :(得分:1)
来自Android documation
转换器应该采用一个参数,表达式类型和返回值应该是setter中使用的目标值类型
目前不支持参数。
您可以改为使用BindingAdapter:
@BindingAdapter({ "date", "format" })
public static void bindDate(final TextView view, final ZonedDateTime date, final String format) {
if (date != null) {
view.setText(DateTimeFormatter.ofPattern(format).format(date));
}
}