1

使用greenDAO库时,需要使用greendao-generator生成相关的POJO和XXXDAO、DAOSession、DAOMaster类。就像这里的 POJO 类一样:Note.java

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. 
/**
 * Entity mapped to table "NOTE".
 */
public class Note {

    private Long id;
    /** Not-null value. */
    private String text;
    private String comment;
    private java.util.Date date;

    public Note() {
    }

    public Note(Long id) {
        this.id = id;
    }

    public Note(Long id, String text, String comment, java.util.Date date) {
        this.id = id;
        this.text = text;
        this.comment = comment;
        this.date = date;
    }

    // Getter and setter...

}

每次更改模型时,都需要重新生成此代码。

Android数据绑定可以通过让你的数据对象能够在数据变化时通知来使用。但在此之前,你需要修改你的POJO类。有不同的数据变化通知机制:数据对象

1.实现接口,在setter中Observable分配Bindable注解和调用方法。notifyPropertyChanged()

private static class User extends BaseObservable {
   private String firstName;
   private String lastName;
   @Bindable
   public String getFirstName() {
       return this.firstName;
   }
   @Bindable
   public String getLastName() {
       return this.lastName;
   }
   public void setFirstName(String firstName) {
       this.firstName = firstName;
       notifyPropertyChanged(BR.firstName);
   }
   public void setLastName(String lastName) {
       this.lastName = lastName;
       notifyPropertyChanged(BR.lastName);
   }
}

2.使用 ObservableFields 或 Observable 集合:

private static class User {
   public final ObservableField<String> firstName =
       new ObservableField<>();
   public final ObservableField<String> lastName =
       new ObservableField<>();
   public final ObservableInt age = new ObservableInt();
}

那么,如果我们想同时使用greenDAOAndroid数据绑定,需要手动修改自动生成的文件吗?如果您的项目很大,我相信这是一项非常大量的工作。或者现在有什么优雅的方法可以让greenDAO支持android数据绑定?

期待你的答复!谢谢!

4

0 回答 0