2016-05-16 11 views
1

realm.where(Model.class)を使用すると、RealmResultsが返され、リストアイテムのフィールドは空です。クエリーセットを読み込み可能なArrayListに変換する方法、またはRealmResultsを反復してDB内のオブジェクトから実際のデータを取得する方法この質問に答えていない場合、それを正確に喜ば、RealmResults <Model>をArrayListに変換する方法<Model>?

for (E e : realmResults) { 
    // Do stuff 
} 

とコードのサンプルを追加します。あなたが反復できるよう

答えて

4

レルムですべてのフェッチが遅延し、データがコピーされません。したがって、RealmResultsから現在のデータを取得する場合は、realm.copyFromRealm(結果)を呼び出す必要があります。あなたは、Java 1.7 `てみてください(レルムmRealm = Realm.getDefaultInstance()){...仕事をする...}キャッチ(例外電子){Log.e(e)のため、高度な技術を使用することができます

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; 
} 
+0

} '最後にこの構文で' realm.closeはそれ自身で呼び出されます - あなたはそれを明示的に呼び出さなければなりません。 – murt

1

RealmResults <E>は、反復処理可能<E>インタフェースを実装しています。

関連する問題