android - 如何将架构组件与 android 上的数据绑定(bind)相结合?

标签 android data-binding android-databinding

我开发了基于 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 components 1.0 final 之后修复(在数据绑定(bind)方面)。

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

关于android - 如何将架构组件与 android 上的数据绑定(bind)相结合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44077566/

相关文章:

java - 数据绑定(bind) - 找不到 BR 类

java - Android list 权限问题

java - 使用 PrivateKey、PublicKey 和 Certificate 对象设置 SSLContext

c# - 如何在 XAML 中设置 DataGrid 的 ItemsSource?

c# - 使用 MVVM C#​​ 将 UpdateSourceTrigger 设置为 WPF ListBox 项源控件的显式

Android Studio 3.2 稳定,找不到 databinding-compiler-common.jar

android - 在android上覆盖布局和数据绑定(bind)生成的类

android - 在没有 root 的情况下在 Android 上使用 libusb

android - 打开 NavigationView 只点击左上角的图标但不使用 swype 手势

android - 在我通过 gradle 分发库后,我在库模块中创建的 BindingAdapter 无法从任何应用程序模块访问