Android用Realmを使用すると、一部のRealmオブジェクトに一意のIDのString[] objectIds
があります。私はString[] objectIds
と同じ順序で対応するレルムオブジェクトを取得しようとしています。Realm Android "in"クエリソート
String[] objectIds = new String[]{"1", "10", "2", "3"};
RealmResults<MyRealmObject> myRealmObjects = realm.where(MyRealmObject.class).in("id", objectIds).findAll();
for(MyRealmObject obj: myRealmObjects) {
log(obj.id) //should print 1, 10, 2, 3
}
ただし、.findAll()を使用すると、結果を並べ替えるように見えます。 "in"を使用してオブジェクトのリストを取得し、objectIds配列と同じ順序を取得するにはどうすればよいですか?この問題にアプローチするにはよりよい方法がありますか?
つまり、リストの最初の結果MyRealmObject.id == 1、リストの2番目の結果などMyRealmObject.id == 10(objectIds配列の順序と同じ)にします。
注文するための基準は何であるの最良の選択肢のような何かを行うことですか? –
@TimCastelijns質問を少し更新しました。 "ObjectIds"配列内の文字列IDと同じ順序でRealm結果を欲しいです。だから、ID 1のIDが「MyRealmObject」、ID 10が2番目、ID 2が3番目など – DiscDev
findAllSortedはうまくいくはずです。 –