android - 使用 copyFromRealm 将 RealmResults<E> 转换为 List<E>

标签 android realm

如何转换 RealmResults<E>List<E>

我尝试使用方法 copyFromRealm :

RealmResults<EventRealm> result = realm.where(EventRealm.class).findAll();

EventRealm eventRealm = result.get(0);
int id = eventRealm.getId(); // return id 2564
String title = eventRealm.getTitle(); // return "My event"

List<EventRealm> copied = realm.copyFromRealm(result);

EventRealm eventRealm1 = copied.get(0);
int id1 = eventRealm1.getId(); // return id 0
String title1 = eventRealm1.getTitle(); // return "My event"

但是不太明白为什么要copy getTitle()给出正确的结果,但是 getId()不正确。

模型

public class EventRealm extends RealmObject {

        @PrimaryKey
        private int id;
        private String title;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = this.id;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }
  }

最佳答案

问题出在您的 setId 方法上。

现在它这样做:

public void setId(int id) {
  this.id = this.id;
}

应该是

public void setId(int id) {
  this.id = id;
}

关于android - 使用 copyFromRealm 将 RealmResults<E> 转换为 List<E>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35427878/

相关文章:

Android在透明图像中填充颜色

android - 带有 setGroupSummary(true) 的通知在 Android N 中不可见

java - 在 android 中使用 java 代码的边框宽度和边框颜色?

java - Realm 生命周期 - 处理 android 中关闭/无效的实例

java - 没有虚方法 getTable()Lio/realm/internal/TableOrView

swift - 第一次加载应用程序时意外发现 nil

android - 防止 toast 消息在触摸时被取消

android - Android 中的 onAnimationEnd 之后调用 applyTransformation

android - 向 Realm 写入数据时如何只更新 NOT NULL 值

ios - [SearchStockCell 保留] : message sent to deallocated instance