realm.where(Model.class) を使用すると、RealmResults が返され、リスト項目のフィールドが空になります。queryset を読み取り可能な ArrayList に変換する方法、または RealmResults を反復して DB 内のオブジェクトから実際のデータを取得する方法は?
11918 次
2 に答える
16
Realm ではすべてのフェッチが遅延され、データがコピーされることはありません。したがって、RealmResults から現在のデータを取得する場合は、realm.copyFromRealm(results) を呼び出す必要があります。
public List<Model> getModelList() {
List<Model> list = new ArrayList<>();
Realm realm;
try {
realm = Realm.getDefaultInstance();
RealmResults<Model> results = realm
.where(Model.class)
.findAll();
list.addAll(realm.copyFromRealm(results));
} finally {
if (realm != null) {
realm.close();
}
}
return list;
}
于 2016-12-22T15:05:55.167 に答える
2
RealmResults<E> は Iterable<E> インターフェースを実装しているため、次のように繰り返すことができます。
for (E e : realmResults) {
// Do stuff
}
これで質問の答えが得られない場合は、質問を正確にして、コードのサンプルを追加してください。
于 2016-05-16T10:41:44.113 に答える