Realm Android - 如何将RealmResults转换为对象数组?

时间:2016-03-05 11:49:16

标签: android realm

我有一个对象

public class ArticleList extends RealmObject {

@PrimaryKey
private String id;
private String title;
private String subtitle;
private String image;
private String category;

}

我想要做的是从Realm获取结果并将结果转换为ArticleList[]

使用

获取
RealmResults<ArticleList> results = realm.where(ArticleList.class).equalTo("category", "CategoryName").findAll();

我需要做什么才能获得一系列对象?

4 个答案:

答案 0 :(得分:26)

最简单的转换为java ArrayList:

SELECT * 
FROM `user` u 
WHERE EXISTS (SELECT 1 FROM `user_detail` ud  WHERE id='1' AND ud.user_age_list = u.user_age)

答案 1 :(得分:16)

List<ArticleList> unmanagedList = realm.copyFromRealm(results);

会这样做。

答案 2 :(得分:10)

RealmResults有一个toArray()方法 - 也是toArray(T[] contents)(请注意RealmResults继承链)。您可以按如下方式使用这些:

ArticleList[] resultArray = (ArticleList[]) results.toArray();

或者

ArticleList[] resultArray = results.toArray(new ArticleList[results.size()]);

理想情况下,您需要使用RealmResults。这样,您就可以获得"free" updates数据,以及List的所有便利。

答案 3 :(得分:2)

您应该从https://github.com/realm/realm-android-adapters扩展抽象的RealmBaseAdapter类,而不是尝试转换为数组,以使结果保持同步。

Realm提供了这些类作为如何使用RecyclerView或ListView创建自动更新列表的示例。