[英]Android - Realm how to query by boolean
I have started to use ´Realm´ and I cannot figure out how to get all the results with the value equals to true . 我已经开始使用'Realm',我无法弄清楚如何获得值等于true的所有结果。
Take a look my code below: 看看我的代码如下:
Java Class Java类
@RealmClass
public class Bookmark extends RealmObject {
private java.lang.String IdBookMark;
private boolean BookMarkActive;
public String getIdBookMark() {
return IdBookMark;
}
public void setIdBookMark(String idBookMark) {
IdBookMark = idBookMark;
}
public boolean isBookMarkActive() {
return BookMarkActive;
}
public void setBookMarkActive(boolean bookMarkActive) {
BookMarkActive = bookMarkActive;
}
}
Function: 功能:
private boolean AnyBookMark (){
Realm realm = Realm.getInstance(getContext());
RealmQuery<Bookmark> query = realm.where(Bookmark.class);
query.contains("BookMarkActive","true");
RealmResults<Bookmark> userBookmarks = query.findAll();
return userBookmarks.isEmpty();
}
Error: 错误:
FATAL EXCEPTION: main Process: gon250.dublinbikes, PID: 2624 java.lang.IllegalArgumentException: Field 'BookMarkActive': type mismatch.
致命异常:主程序:gon250.dublinbikes,PID:2624 java.lang.IllegalArgumentException:字段'BookMarkActive':类型不匹配。 Was STRING, expected BOOLEAN.
是STRING,期待BOOLEAN。 at io.realm.RealmQuery.getColumnIndices(RealmQuery.java:146) at io.realm.RealmQuery.contains(RealmQuery.java:816) at io.realm.RealmQuery.contains(RealmQuery.java:802) at tabs.Tab2.AnyBookMark(Tab2.java:55) at tabs.Tab2.onCreateView(Tab2.java:33)
at io.realm.RealmQuery.getColumnIndices(RealmQuery.java:146)at io.realm.RealmQuery.contains(RealmQuery.java:816)at io.realm.RealmQuery.contains(RealmQuery.java:802)at tabs.Tab2。 tabs.Tab2.onCreateView(Tab2.java:33)上的AnyBookMark(Tab2.java:55)
Version: 版:
compile 'io.realm:realm-android:0.78.0'
编译'io.realm:realm-android:0.78.0'
What is the proper way to get all the results with BookMarkActive
equals to true
. 使用
BookMarkActive
获得所有结果的正确方法是什么等于true
。
Instead of query.contains("BookMarkActive","true");
而不是
query.contains("BookMarkActive","true");
you can do query.equalTo("BookMarkActive", true);
你可以做
query.equalTo("BookMarkActive", true);
. 。
Btw, 0.78.0 is a really old version. 顺便说一句,0.78.0是一个非常古老的版本。 I recommend that you upgrade soon ;-)
我建议您尽快升级;-)
Function should be something like this: 功能应该是这样的:
private boolean anyBookMark() {
Realm realm = Realm.getInstance(getContext());
RealmQuery<Bookmark> query = realm.where(Bookmark.class);
query.equalTo("BookMarkActive", "true");
RealmResults<Bookmark> userBookmarks = query.findAll();
return userBookmarks.isEmpty();
}
BookMarkActive column should be String type. BookMarkActive列应为String类型。 If it is some other type then corresponding value should be passed rather that "true"
如果是其他类型,则应传递相应的值而不是“true”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.