我有复杂的Android房间查询:
SELECT * FROM Model WHERE (:applyAssigneeFilters IS 0 OR assigneeMemberId IN(:assigneeFilters))...
我正在传递boolean
-applyAssigneeFilters
,以确定查询是否应返回assigneeFilters
列表中assigneeMemberId
所在的项。
这工作得很好,但是,现在我有新的要求,包括项目是未分配。
我想有类似的选项(bool
值),将过滤项目的assigneeMemberId
和/或isAssigneed
。这两个选项可以组合。
编辑:
在UI侧,我有选项列表:
[] Unassigned
[] Member1
[] Member2
在添加"未分配"选项之前,applyAssigneeFilters
变量只是一个assigneeFilters.isEmpty()
检查。添加Unassigned
之后,我只需要过滤Unassigned
项或/和assigneeFilters
中分配的成员。
示例:给定项目:
Item(id: 1, memberId: 1, unassigned: false)
Item(id: 2, memberId: 2, unassigned: false)
Item(id: 3, memberId: null, unassigned: true)
和选项
[X] Unassigned
[] Member1
[] Member2
结果将是:
Item(id: 3, memberId: null, unassigned: true)
对于选项:
[X] Unassigned
[] Member1
[X] Member2
结果将是:
Item(id: 2, memberId: 2, unassigned: false)
Item(id: 3, memberId: null, unassigned: true)
对于选项:
[] Unassigned
[X] Member1
[X] Member2
结果将是:
Item(id: 1, memberId: 1, unassigned: false)
Item(id: 2, memberId: 2, unassigned: false)
2条答案
按热度按时间omjgkv6w1#
根据你的例子,你可以简单地用途:
下面是一个生成结果的工作示例:
使用的数据库材料:-
活动的布局,包含3个复选框(未分配、成员1和成员2)、一个用于GO并获取结果的按钮以及一个用于显示结果的TextView:-
活动代码:-
结果:-
第一次运行时(未显示):-
如果随后点击Go(未选中任何内容,即所有内容均未分配,结果与第3个示例相同(这是您想要的吗?)):-
复选框符合第一个示例:-
第二个示例中的复选框:-
第三个示例中的复选框:-
数据库中的数据(通过应用程序检查):-
cidc1ykv2#
我找到了解决自己问题的办法。
因此,我引入了
unassignedMemberId
,它被添加到assigneeFilters
列表中,并且模型已经具有字段hasAssignee
,这允许我在没有受让人的情况下过滤项目,并且仍然使用applyAssigneeFilters
标志。