2017-02-23 18 views
0

RealmResult exに優先順位付けのようなフィルタを追加することは可能ですか?Android - RealmResultの優先順位付け

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

私が「ID」で、その後の並べ替え「ジョン」そして「Emman」を優先させたい

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値に割り当てることができる場合は、優先順位フィールドを作成し、 'findAllSorted(" priority "、Sort.ASC、" id "、Sort.ASC)を使用して並べ替えることができます。 –

+0

Uereka !コメントをいただきありがとうございます。私はアイデアを持っています。私自身の質問に対する回答を掲載します。 –

答えて

0

私は多分私はインデックスを含む列を作成します@Christian でアイデア言及を得ました。 、Sort.DESC .thatデフォルトは nullで、私は優先させたい場合、私はnull以外を取得し、その結果 をインクリメントし、インデックス

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(「インデックス」として設定する必要があります)

関連する問題