我有TextView用于显示时间。我想使用Android的DataBinding插件。

对于格式化时间,我使用的是DateUtils.formatDateTime(context, int, int)实例的Context方法。是否有可能获得上下文包含元素?还是我必须使用老式的方式?

谢谢

最佳答案

以为我应该回答而不是发表评论。 rc2发布时,您将有更多选择。在rc1中,可以将变量中的上下文传递给Binding,然后将其作为参数传递给方法。另外,您可以为数据绑定(bind)创建自定义属性:

@BindingAdapter({"timeMillis", "dateFlags"})
public static void setDateText(TextView view, int timeMillis, int dateFlags) {
    view.setText(DateUtils.formatDateTime(view.getContext(), timeMillis,
                 dateFlags));
}

然后在TextView中使用它:
<TextView ... app:timeMillis="@{timeVar}" app:dateFlags="@{dateFlags}"/>

07-27 16:12