有没有什么办法可以让greenDAO现在支持android数据绑定?

时间:2016-04-21 12:18:53

标签: android greendao android-databinding greendao-generator

使用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 data-binding可以通过为数据对象提供数据更改时的通知功能来使用。但在此之前,您需要修改POJO类。有不同的数据更改通知机制:Data Objects < / p>

1.实现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 Collections:

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

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

期待您的回复!谢谢!

0 个答案:

没有答案