2017-02-23 2 views
0

Est-il possible d'ajouter un filtre comme la hiérarchisation dans RealmResult ex.Android - Priorisation dans RealmResult

RealmResult<Persons> persons 
Id | Name 
1 Eleo 
2 Cath 
8 Chris 
9 Emman 
5 John 

Je veux donner la priorité à "John", puis "Emman" puis trier par "Id"

RealmResult<Persons> persons 
Id | Name 
5 John 
9 Emman 
1 Eleo 
2 Cath 
8 Chris 

Est-il possible de réaliser ce type de tri?

RealResult <Persons> persons_list = realm.where(Persons.class).findAll().sort("id").priority("id",int[]{5,9}); 
+1

Non, ce n'est pas possible. Vous pouvez trier sur plusieurs champs, donc si vous pouvez assigner une valeur int à vos priorités, vous pouvez créer un champ de priorité et trier en utilisant 'findAllSorted (" priority ", Sort.ASC," id ", Sort.ASC)' –

+0

Uereka ! merci pour le commentaire maintenant j'ai une idée. .Je posterai une réponse à ma propre question. –

Répondre

0

J'obtenu une mention d'idée par @Christian Je vais peut-être créer une colonne qui contient l'index. par défaut .que est nulle et si je veux donner la priorité je dois obtenir le non nul et incrémenter le résultat et le définir comme indice

exemple

Id | Name | Index 
5 John (null) 
9 Emman (null) 
1 Eleo (null) 
2 Cath (null) 
8 Chris (null) 

int get_non_null_index = realm.where(Persons.class).isNotNull("Index").findAll().size(); 
get_non_null_index += 1 
john.setIndex(get_non_null_index); 
get_non_null_index += 1 
emmain.setIndex(get_non_null_index); 

findAllSorted (« Index », Sort.DESC