首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定领域changeSet字段

确定领域changeSet字段
EN

Stack Overflow用户
提问于 2018-06-05 10:14:44
回答 1查看 612关注 0票数 1

如何确定使用基本领域适配器侦听器方法在RealmObject更新时更改了哪些字段?

需要同时拥有范围信息和更改的实体字段信息。

代码语言:javascript
复制
fun notifyRecyclerViewOfChanges(changeSet: ChangeSet?) { 
   // ?
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 10:22:49

您可以参考官方的realm-android-adapters来了解如何将其组合在一起:

代码语言:javascript
复制
private OrderedRealmCollectionChangeListener createListener() {
    return new OrderedRealmCollectionChangeListener() {
        @Override
        public void onChange(Object collection, OrderedCollectionChangeSet changeSet) {
            if (changeSet.getState() == OrderedCollectionChangeSet.State.INITIAL) { // before Realm 5.0, this is `changeSet == null`
                notifyDataSetChanged();
                return;
            }
            // For deletions, the adapter has to be notified in reverse order.
            OrderedCollectionChangeSet.Range[] deletions = changeSet.getDeletionRanges();
            for (int i = deletions.length - 1; i >= 0; i--) {
                OrderedCollectionChangeSet.Range range = deletions[i];
                notifyItemRangeRemoved(range.startIndex, range.length);
            }

            OrderedCollectionChangeSet.Range[] insertions = changeSet.getInsertionRanges();
            for (OrderedCollectionChangeSet.Range range : insertions) {
                notifyItemRangeInserted(range.startIndex, range.length);
            }

            if (!updateOnModification) {
                return;
            }

            OrderedCollectionChangeSet.Range[] modifications = changeSet.getChangeRanges();
            for (OrderedCollectionChangeSet.Range range : modifications) {
                notifyItemRangeChanged(range.startIndex, range.length);
            }
        }
    };
}

如果您需要字段级的更改,那么RealmObject需要使用RealmObjectChangeListener拥有自己的变更侦听器,而updateOnModification应该是假的(因为您希望在视图持有者本身中处理它)。

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

https://stackoverflow.com/questions/50697595

复制
相关文章

相似问题

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