我正在使用RealmObject
模型databinding
。
它工作正常,但现在我希望我的视图在数据更改时更新,并且我实现了Observable
。
模型是:
public class RealmArticle extends RealmObject implements Observable {
public RealmArticle() {
}
private PropertyChangeRegistry registry =
new PropertyChangeRegistry();
@Bindable
public String getCountText() {
return countText;
}
public void setCountText(String countText) {
this.countText = countText;
registry.notifyChange(this, BR.obj);
}
@Override
public void addOnPropertyChangedCallback(OnPropertyChangedCallback callback) {
registry.add(callback);
}
@Override
public void removeOnPropertyChangedCallback(OnPropertyChangedCallback callback) {
registry.remove(callback);
}
}
问题是RealmObject不支持PropertyChangeRegistry
类型的字段。
Android工作室说:Error:(18, 8) error: Field "registry" of type "android.databinding.PropertyChangeRegistry" is not supported.
有没有办法在不违反RealmObject
功能的情况下实现此界面?
答案 0 :(得分:3)
将Ignore
注释添加到该字段就足够了。
答案 1 :(得分:1)
与documentation of RealmObject
州一样
注释处理器将为您的RealmObject子类创建一个代理类。 支持以下字段数据类型:
- 布尔/布尔
- 短/短
- INT /整数
- 长/长
- 浮动/浮动
- 双/双
- 字节[]
- 字符串
- 日期
- 任何RealmObject子类
- RealmList
使用
Ignore
注释的字段没有这些限制,也不需要getter或setter。
像这样你可以省略代理生成中的字段。
或者,您可以使用transient
Java关键字来实现相同的目标。