Android。将 RealmObject 与数据绑定一起使用
Android. Using the RealmObject with Databinding
我正在为 databinding
使用 RealmObject
模型。
它运行良好,但现在我希望在数据更改时更新我的视图,并且我实现了 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
功能的情况下实现此接口?
向该字段添加 Ignore
注释就足够了。
喜欢documentation of RealmObject
状态
An annotation processor will create a proxy class for your RealmObject subclass.
The following field data types are supported:
- boolean/Boolean
- short/Short
- int/Integer
- long/Long
- float/Float
- double/Double
- byte[]
- String
- Date
- Any RealmObject subclass
- RealmList
Fields annotated with Ignore
don't have these restrictions and don't require either a getter or setter.
像这样,您可以从代理生成中省略该字段。
或者您可以使用 transient
Java 关键字来实现同样的效果。
我正在为 databinding
使用 RealmObject
模型。
它运行良好,但现在我希望在数据更改时更新我的视图,并且我实现了 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
功能的情况下实现此接口?
向该字段添加 Ignore
注释就足够了。
喜欢documentation of RealmObject
状态
An annotation processor will create a proxy class for your RealmObject subclass. The following field data types are supported:
- boolean/Boolean
- short/Short
- int/Integer
- long/Long
- float/Float
- double/Double
- byte[]
- String
- Date
- Any RealmObject subclass
- RealmList
Fields annotated with
Ignore
don't have these restrictions and don't require either a getter or setter.
像这样,您可以从代理生成中省略该字段。
或者您可以使用 transient
Java 关键字来实现同样的效果。