gpt4 book ai didi

android - 我如何在 android 中按字母顺序对 Realm 结果列表进行排序?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:46 26 4
gpt4 key购买 nike

我有一个 Realm 列表,我想按字母顺序对列表进行排序。

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 中排序非常简单。

这是一个例子:

假设您想按姓名对联系人列表进行排序,您应该在查询结果时对其进行排序,您将得到已经为您排序的结果。

有多种方法可以实现这一点

示例:

1)简单和推荐的方式:
// 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);

从 realm 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);

Have a look here您会找到有关 Realm 查询、排序和其他有用用法的非常详细的示例。

关于android - 我如何在 android 中按字母顺序对 Realm 结果列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39290363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com