Android 将文本视图绑定到日期
我想将TextView绑定到JodaTime日期,这样,如果以编程方式更改日期的值,TextView将随之更改。我第一次成功地显示了它,但是如果日期改变,视图就不会更新 文本视图:Android 将文本视图绑定到日期,android,android-activity,data-binding,viewmodel,jodatime,Android,Android Activity,Data Binding,Viewmodel,Jodatime,我想将TextView绑定到JodaTime日期,这样,如果以编程方式更改日期的值,TextView将随之更改。我第一次成功地显示了它,但是如果日期改变,视图就不会更新 文本视图: <TextView android:id="@+id/day" android:layout_width="wrap_content" android:layout_height="wrap_content" and
<TextView
android:id="@+id/day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{mainViewModel.day}" />
我遗漏了什么?您的变量命名实际上让您感到困惑 由于
TextView
与String
类型一起工作,因此它调用您的方法getDay()
。在这种情况下,根本不调用observefieldday
(从布局中)
您需要使用@Bindanble
注释才能动态更改布局
例如:
private LocalDate mDay;
@Bindable
public String getDay(){
return mDay.toString("dd/MM/yyyy");
}
public void previousDay() {
mDay = mDay.plusDays(1);
notifyPropertyChanged(BR.day); // you will have to import this (something like com.yourproject.BR)
}
public void nextDay() {
mDay = mDay.minusDays(1);
notifyPropertyChanged(BR.day);
}
您的ViewModel需要从BaseObservable
(如果可能)继承或实现Observable
接口(您可以只复制BaseObservable
实现)
[尚未构建,可能包含简单的语法错误]您的变量命名实际上让您感到困惑 由于
TextView
与String
类型一起工作,因此它调用您的方法getDay()
。在这种情况下,根本不调用observefieldday
(从布局中)
您需要使用@Bindanble
注释才能动态更改布局
例如:
private LocalDate mDay;
@Bindable
public String getDay(){
return mDay.toString("dd/MM/yyyy");
}
public void previousDay() {
mDay = mDay.plusDays(1);
notifyPropertyChanged(BR.day); // you will have to import this (something like com.yourproject.BR)
}
public void nextDay() {
mDay = mDay.minusDays(1);
notifyPropertyChanged(BR.day);
}
您的ViewModel需要从BaseObservable
(如果可能)继承或实现Observable
接口(您可以只复制BaseObservable
实现)
[尚未构建,可能包含简单语法错误]我的ViewModel已经扩展了java.util.Observable,我看不出如何使用我的配置来实现这一点。如果我实现databinding.Observable,我想我必须使用addOnPropertyChangedCallback来监听属性的更改,但是如何做到这一点呢?android数据绑定不适用于
java.util.Observable
。它与android.databinding.Observable一起工作。与其扩展它,不如从已经需要实现的BaseObservable
进行扩展。然后只需调用notifyPropertyChanged(BR.day)代码>是的,我知道,不幸的是这个应用程序就是这样构建的。我需要一个快速解决这个特殊情况的方法。无论如何,感谢您,有用的信息:)我的ViewModel已经扩展了java.util.Observable,我不知道如何使用我的配置来实现这一点。如果我实现databinding.Observable,我想我必须使用addOnPropertyChangedCallback来监听属性的更改,但是如何做到这一点呢?android数据绑定不适用于java.util.Observable
。它与android.databinding.Observable一起工作。与其扩展它,不如从已经需要实现的BaseObservable
进行扩展。然后只需调用notifyPropertyChanged(BR.day)代码>是的,我知道,不幸的是这个应用程序就是这样构建的。我需要一个快速解决这个特殊情况的方法。无论如何,谢谢你,有用的信息:)