我刚刚掌握了使用Editor framework
的窍门,正在移植我的所有表单来使用它。我在Event
表单上遇到了一些麻烦。我有5个不同的time fields
-每个字段我都使用DateBox
来允许用户选择时间。
在旧的Activity
中,我将这些字段的值转换为Long
次,填充proxy object
并持久化它
我想用Editor framework
做同样的事情。我是否可以使用Editor
和DateBox
来填充域对象中的Long
字段。我相信一定有办法做到这一点,我只是很难弄清楚。
如果不是这样,而我现在还不能这样做,有人知道如何做到这一点的好解决方案吗?
您必须将DateBox
封装在Editor<Long>
中。类似于:
@Editor.Ignore
@UiField
DateBox dateField;
LeafValueEditor<Long> longField = new LeafValueEditor<Long>() {
@Override
public Long getValue() {
Date date = dateField.getValue();
return date == null ? null : date.getTime();
}
@Override
public void setValue(Long value) {
Date date = value == null ? null : new Date(value.longValue());
dateField.setValue(date);
}
}