Android BindingConversion多个参数

时间:2016-11-14 18:51:49

标签: android binding data-conversion

我写过这个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"/>

但它无法建立。

有人可以解释我如何将多个参数传递给绑定转换吗?

1 个答案:

答案 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));
    }
}