Android系统。使用带有数据绑定的RealmObject

时间:2017-05-20 18:38:25

标签: android realm android-databinding

我正在使用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功能的情况下实现此界面?

2 个答案:

答案 0 :(得分:3)

Ignore注释添加到该字段就足够了。

答案 1 :(得分:1)

documentation of RealmObject州一样

  

注释处理器将为您的RealmObject子类创建一个代理类。    支持以下字段数据类型:

     
      
  • 布尔/布尔
  •   
  • 短/短
  •   
  • INT /整数
  •   
  • 长/长
  •   
  • 浮动/浮动
  •   
  • 双/双
  •   
  • 字节[]
  •   
  • 字符串
  •   
  • 日期
  •   
  • 任何RealmObject子类
  •   
  • RealmList
  •   
     

使用Ignore注释的字段没有这些限制,也不需要getter或setter。

像这样你可以省略代理生成中的字段。

或者,您可以使用transient Java关键字来实现相同的目标。