我目前正在使用Android的Realm版本87.1,但未找到任何and子句,just或or子句。
这是我的问题:
我有一个表Products和一个AutoCompleteTextView,用户可以在其中搜索其产品,同时一些建议也会在列表中下拉。如下图。
假设“产品”具有以下值:
{ "Product 1", "Product 2", "Product 3", "Product 4", "Product 5" }
这些只是这个问题的简单名称。
我要实现的目标是,当用户键入“产品5”时,建议是“产品5”。这将使用户可以轻松地找到他的产品,而不用键入产品的所有名称。
因此,使用此模板来过滤AutoCompleteTextView https://github.com/realm/realm/realm-java/issues/646的数据,在performRealmFiltering方法中,我尝试了以下方法:
RealmQuery realmQuery = RealmResults<Products>.where();
String[] split = String.valueOf(constraint).split(" ");
int i = 1;
for(String part : split) {
if(split.length == i) {
realmQuery = realmQuery.contains("ProductDescription", part, Case.INSENSITIVE);
}
else
{
realmQuery = realmQuery.contains("ProductDescription", part, Case.INSENSITIVE).or();
}
i++;
}
return realmQuery.findAll();
显然,这没有正确过滤数据并返回所有Product,因为or或应该是and。
因此,我的问题是:Realm for Java中有一个and子句?还是另一个与and相同的子句,甚至是实现此过滤查询的另一种方式?
谢谢你的帮助!
好吧,我找到了一种可行的解决方法。
RealmQuery realmQuery = RealmResults<Products>.where();
String[] split = String.valueOf(constraint).split(" ");
for(String part : split) {
realmQuery = realmQuery.contains("ProductDescription", part, Case.INSENSITIVE);
}
return realmQuery.findAll();
我只是继续替换相同的查询。
但是,我还不知道为什么会这样,所以如果有人知道为什么,我会很高兴听到。
最好的祝福
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句