其他分享
首页 > 其他分享> > Android与房间表模型的双向数据绑定

Android与房间表模型的双向数据绑定

作者:互联网

所以我有用@Entity注释注释的房间模型类,其中包含用@ColumnInfo注释的字段.

我还有一个绑定到该模型对象的视图:

   <EditText
        android:id="@+id/sadfadsdfasd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:hint="@string/assdsa"
        android:inputType="text"
        android:text="@={fuelPrice.modification}" />

这样,当显示EditText时它就可以工作.它显示了我模型的值,但是当我修改EditText时,即使我使用@ =符号表示双向绑定,该修改也不会存储在对象中.

因此,如果我理解正确,我真的不能将POJO与简单的原始字段用于双向数据绑定,而是应该将所有字段作为可观察类型的必需类型或包含在LiveData中的字段?

如果上述情况成立,是否意味着要对房间实体进行双向绑定,我必须为每个实体创建单独的类,以实现所有可观察字段并相应地更新我的实体对象?还是有一个更简单的解决方案?

编辑
以上案例均为假.似乎两种方式的绑定确实适用于具有适当的getter和setter的简单POJO类.

解决方法:

我刚刚测试了AFAIK,鉴于修改是带有标准getter和setter的私有字段,因此它应该在没有ObservableField的情况下也可以工作.使用

android:text =“ @ = {fueldPrice.modification}”

class FuelPrice {
    private String modification;

    public String getModification() {
        return modification;
    }

    public String setModification(String modification) {
        this.modification = modification;
    }
}

如果您只是使用公共场所,它也可以工作

class FuelPrice {
    public String modification;
}

标签:android-room,android-architecture-components,android-databinding,android
来源: https://codeday.me/bug/20191108/2008080.html