2017-02-23 46 views
0

Можно ли добавить фильтр, как приоритет, в RealmResult ex.Android - Приоритизация в RealmResult

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

Я хочу, чтобы определить приоритеты «Джон», а затем «Emman», а затем сортировать по «Id»

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

Можно ли достичь такой сортировки?

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

Нет, это невозможно. Вы можете сортировать по нескольким полям, поэтому, если вы можете назначить приоритеты int-value, вы можете создать поле приоритета и отсортировать с помощью 'findAllSorted (« priority », Sort.ASC,« id », Sort.ASC)' –

+0

Uereka ! спасибо за комментарий, теперь у меня есть идея. . Я отвечу на свой вопрос. –

ответ

0

Я получил упоминание идеи @Christian возможно я создать столбец, который содержит индекс. .that по умолчанию равно нулю и если я хочу, чтобы приоритеты я должен получить нон нуль и увеличиваем результат и установить его в качестве индекса

пример

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)