首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓。在数据库中使用RealmObject

问安卓。在数据库中使用RealmObject
EN

Stack Overflow用户
提问于 2017-05-20 18:38:24
回答 2查看 590关注 0票数 0

我正在为RealmObject使用databinding模型。它运行得很好,但现在我希望在数据更改时更新我的视图,并实现了Observable。

模式是:

代码语言:javascript
复制
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类型的字段。

安卓工作室说:Error:(18, 8) error: Field "registry" of type "android.databinding.PropertyChangeRegistry" is not supported.

有没有一种在不违反RealmObject功能的情况下实现此接口的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-21 08:30:20

就像RealmObject状态

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

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

带有Ignore注释的字段没有这些限制,并且不需要getter或setter。

就像这样,您可以从代理生成中省略该字段。

或者,您也可以使用transient关键字来实现同样的目的。

票数 1
EN

Stack Overflow用户

发布于 2017-05-21 08:27:47

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44089534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档