Android 将文本视图绑定到日期

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绑定到JodaTime日期,这样,如果以编程方式更改日期的值,TextView将随之更改。我第一次成功地显示了它,但是如果日期改变,视图就不会更新

文本视图:

<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)是的,我知道,不幸的是这个应用程序就是这样构建的。我需要一个快速解决这个特殊情况的方法。无论如何,谢谢你,有用的信息:)