我有一个领域列表,我想按字母顺序对列表进行排序。
Collections.sort(contacts, new java.util.Comparator<Contacts>() {
@Override
public int compare(Contacts l1, Contacts l2) {
String s1 = l1.getName();
String s2 = l2.getName();
return s1.compareToIgnoreCase(s2);
}
});
但是这种逻辑无法唤醒我在下面发布崩溃报告,请仔细阅读。
java.lang.UnsupportedOperationException: Replacing and element is not supported.
at io.realm.RealmResults$RealmResultsListIterator.set(RealmResults.java:826
at io.realm.RealmResults$RealmResultsListIterator.set(RealmResults.java:757)at java.util.Collections.sort(Collections.java:1909)
请仔细阅读我的帖子,并向我提出一些解决方案。
排序Realm
非常简单。
这是一个例子:
假设您想按姓名对联系人列表进行排序,则在查询结果时应对其进行排序,您将得到已经为您排序的结果。
有多种方法可以实现这一目标
例子:
// for sorting ascending
RealmResults<Contacts> result = realm.where(Contacts.class).findAllSorted("name");
// sort in descending order
RealmResults<Contacts> result = realm.where(Contacts.class).findAllSorted("name", Sort.DESCENDING);
从5.0.0版开始更新
1)简单推荐的方法:
// for sorting ascending, Note that the Sort.ASCENDING value is the default if you don't specify the order
RealmResults<Contacts> result = realm.where(Contacts.class).sort("name").findAll();
// sort in descending order
RealmResults<Contacts> result = realm.where(Contacts.class).sort("name", Sort. DESCENDING).findAll();
2)对于未排序的结果
如果您得到未排序的结果,则可以通过这种方式在任何地方对其进行排序。
RealmResults<Contacts> result = realm.where(Contacts.class).findAll();
result = result.sort("name"); // for sorting ascending
// and if you want to sort in descending order
result = result.sort("name", Sort.DESCENDING);
在这里看看,您将找到有关Realm
查询,排序和其他有用用法的非常详细的示例。
希望能帮助到你
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句