【问题标题】:Android - Prioritization in RealmResultAndroid - RealmResult 中的优先级
【发布时间】:2017-02-23 08:07:32
【问题描述】:

是否可以在 RealmResult 中添加类似优先级的过滤器 例如。

RealmResult<Persons> persons
Id | Name
1   Eleo
2   Cath
8   Chris
9   Emman
5   John

我想优先考虑“John”,然后是“Emman”,然后按“Id”排序

RealmResult<Persons> persons
Id | Name
5   John
9   Emman
1   Eleo
2   Cath
8   Chris

有没有可能实现这种排序?

RealResult <Persons> persons_list = realm.where(Persons.class).findAll().sort("id").priority("id",int[]{5,9});

【问题讨论】:

  • 不,这是不可能的。不过,您可以对多个字段进行排序,因此如果您可以为您的优先级分配一个 int 值,您可以创建一个优先级字段并使用findAllSorted("priority", Sort.ASC, "id", Sort.ASC) 进行排序
  • 尤里卡!感谢您的评论现在我有一个想法。 。我会发布我自己问题的答案。

标签: android realm realm-mobile-platform realm-list


【解决方案1】:

@Christian 提到了一个想法 也许我会创建一个包含索引的列。 .默认为空 如果我想优先考虑我必须得到非空值并增加结果 并将其设置为索引

例子

Id | Name | Index
5   John   (null)
9   Emman  (null)
1   Eleo   (null)
2   Cath   (null)
8   Chris  (null)

int get_non_null_index = realm.where(Persons.class).isNotNull("Index").findAll().size();
get_non_null_index += 1
john.setIndex(get_non_null_index);
get_non_null_index += 1
emmain.setIndex(get_non_null_index);

findAllSorted("索引", Sort.DESC)

【讨论】:

    猜你喜欢
    • 2012-11-17
    • 2014-10-04
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多