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.インターフェイスを実装し、注釈をObservable割り当て、セッターでメソッドを呼び出します。BindablenotifyPropertyChanged()

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();
}

では、 greenDAOAndroid のデータ バインディングを一緒に使用したい場合は、自動生成されたファイルを手動で変更する必要がありますか? プロジェクトが大規模な場合、これは非常に大量の作業になると思います。または、greenDAO に Android データバインディングをサポートさせるエレガントな方法はありますか?

お返事を楽しみにしています!ありがとう!

4

0 に答える 0