我已经在android数据绑定(bind)库上开发了应用程序:https://developer.android.com/topic/libraries/data-binding/index.html

class SignInViewModel extends BaseObservable {

    @Bindable
    public String getLogin() {
        return login;
    }

    @Bindable
    public String getPassword() {
        return password;
    }
}

现在我想使用新库中的ViewModelProviders:
https://developer.android.com/topic/libraries/architecture/guide.html
SignInViewModel signInViewModel = ViewModelProviders.of(this).get(SignInViewModel.class);

如何结合?任何的想法?还是应该将这两个库结合使用?

编辑

我更改为:
class SignInViewModel extends ViewModel {
   public ObservableField<String> login = new ObservableField<>("");

    public ObservableField<String> password = new ObservableField<>("");
}

现在可以编译,但问题是:这是正确的方法吗?

最佳答案

这是已知的不兼容性。您不能同时扩展BaseObservableAndroidViewModel,因此不能使用@Bindable来实现双向数据绑定(bind)*。

在arch组件1.0 final之后(在数据绑定(bind)端),此问题将得到修复。

*编辑:您可以创建自己的ObservableViewModel:https://gist.github.com/JoseAlcerreca/4b66f9953d50b483d80e6b9ad7172685

10-05 21:11
查看更多