gpt4 book ai didi

android - 在 Realm 数据库中过滤 - findAll 不适用于包含 boolean 值的查询

转载 作者:行者123 更新时间:2023-11-29 14:44:42 25 4
gpt4 key购买 nike

我有一个 Realm 数据库,其中包含具有一个 boolean 属性的对象。在整个应用程序中,我需要过滤一次数据库的所有内容,这完全没问题。

在另一个 Activity 中,我只需要过滤数据库中 boolean 值设置为 true 的对象。但它不起作用,它仍然过滤所有对象。

你能检查我的代码并试着告诉我我做错了什么吗?

favourites = realm.where(MyObject.class).equalTo("isFavourite", true).findAll();

editTextSearch.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (favourites.isEmpty()) {
return;
}
adapter = new ImageAdapter(FavouritesActivity.this, helper.searchInFavourites(s));
gridView.setAdapter(adapter);
}
}


OrderedRealmCollection<MyObject> searchInFavourites(CharSequence search) {
OrderedRealmCollection<MyObject> favourites;
if (search != null && search.length() > 0) {
favourites = realm.where(MyObject.class).equalTo("isFavourite", true)
.contains("name", search.toString(), Case.INSENSITIVE)
.or()
.contains("category", search.toString(), Case.INSENSITIVE)
.or()
.contains("description", search.toString(), Case.INSENSITIVE).findAll();
} else {
favourites = realm.where(Illusion.class).equalTo("isFavourite", true).findAll();
}
return favourites;
}

最佳答案

favourites = realm.where(MyObject.class)
.beginGroup() // <--
.equalTo("isFavourite", true)
.endGroup() // <--
.beginGroup() // <--
.contains("name", search.toString(), Case.INSENSITIVE)
.or()
.contains("category", search.toString(), Case.INSENSITIVE)
.or()
.contains("description", search.toString(), Case.INSENSITIVE)
.endGroup() // <--
.findAll();

关于android - 在 Realm 数据库中过滤 - findAll 不适用于包含 boolean 值的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43831744/

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