如何確保RealmResult
是基於ids整數數組的排序順序排序的?Realm Android:按名單排序
public static RealmResults<ContentPage> getContentPages(Realm realm, Integer[] ids) {
return realm.where(ContentPage.class)
.in(ContentPage.FIELD_ID, ids).findAll();
}
所以我在尋找一種方法來ContentPage
對象進行排序的基礎上,ids數組中的編號位置。
我不會將這RealmResult
轉換爲一個列表,它是一個自動管理的對象,所以我不能在檢索後運行它的正常Comparator
。
*編輯:如果我嘗試在RealmResult上使用普通比較器,我會得到:UnsupportedOperationException:替換和元素不受支持。
*編輯2:我的問題似乎不清楚:如果我有這樣的IDS數組:[3,1,2]
。這進入.in(ContentPage.FIELD_ID, ids)
以上。我希望RealmResult的順序如下:首先是id 3,後面是1,最後是2。
*編輯3:通過每次RealmResult創建一個新的ArrayList(使用Realm ChangeListener)並在我的應用程序中進一步使用它來修復。您可以對此複製的數組進行排序不理想,但是一個臨時解決方案。
return realm.where(ContentPage.class)
.in(ContentPage.FIELD_ID, ids).findAllSorted("id",Sort.DESCENDING);
但RealmResults已經有了.sort()方法,所以不需要轉換爲數組,或者我完全失去了,並且不能很好地使你xD –
:)如上所見,運行.sort()方法RealmResult給出「UnsupportedOperationException:替換並且元素不受支持」。 – Frank