web-dev-qa-db-fra.com

Realm Android - Comment puis-je convertir RealmResults en tableau d'objets?

J'ai un objet

public class ArticleList extends RealmObject {

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

}

Ce que je veux faire, c'est récupérer le résultat de Realm et les convertir en ArticleList[]

Aller chercher en utilisant

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

Que dois-je faire ensuite pour obtenir un tableau d'objets?

13
Alexey K

RealmResults a une méthode toArray() - également toArray(T[] contents) (notez la chaîne d'héritage RealmResults ). Vous pouvez les utiliser comme suit:

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

Ou

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

Idéalement, vous voudriez plutôt utiliser RealmResults. Cela vous permet d'obtenir mises à jour "gratuites" à vos données, ainsi que toutes les commodités d'un List.

10
Adam S

Le plus simple à convertir en Java ArrayList:

    ArrayList<People> list = new ArrayList(mRealm.where(People.class).findAll());
26
Farhan
List<ArticleList> unmanagedList = realm.copyFromRealm(results);

Le fera.

20
Aniket Kadam

Au lieu d'essayer de convertir en tableau, vous devez étendre la classe abstraite RealmBaseAdapter à partir de https://github.com/realm/realm-Android-adapters pour garder vos résultats synchronisés.

Realm fournit ces classes comme exemple de création d'une liste de mise à jour automatique avec RecyclerView ou ListView.

2
EpicPandaForce