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
割り当て、セッターでメソッドを呼び出します。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 データバインディングをサポートさせるエレガントな方法はありますか?
お返事を楽しみにしています!ありがとう!