In order to sort a query, instead of using findAll()
, you should use findAllSorted()
.
RealmResults<SomeObject> results = realm.where(SomeObject.class)
.findAllSorted("sortField", Sort.ASCENDING);
Note:
sort()
returns a completely new RealmResults that is sorted, but an update to this RealmResults will reset it. If you use sort()
, you should always re-sort it in your RealmChangeListener
, remove the RealmChangeListener
from the previous RealmResults
and add it to the returned new RealmResults
. Using sort()
on a RealmResults
returned by an async query that is not yet loaded will fail.
findAllSorted()
will always return the results sorted by the field, even if it gets updated. It is recommended to use findAllSorted()
.