我已经在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<>("");
}
现在可以编译,但问题是:这是正确的方法吗?
最佳答案
这是已知的不兼容性。您不能同时扩展BaseObservable
和AndroidViewModel
,因此不能使用@Bindable
来实现双向数据绑定(bind)*。
在arch组件1.0 final之后(在数据绑定(bind)端),此问题将得到修复。
*编辑:您可以创建自己的ObservableViewModel:https://gist.github.com/JoseAlcerreca/4b66f9953d50b483d80e6b9ad7172685