Android - Realm如何通过布尔查询

gon*_*250 2 java android realm android-database

我已经开始使用'Realm',我无法弄清楚如何获得值等于true的所有结果.

看看我的代码如下:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

功能:

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();
}
Run Code Online (Sandbox Code Playgroud)

错误:

致命异常:主程序:gon250.dublinbikes,PID:2624 java.lang.IllegalArgumentException:字段'BookMarkActive':类型不匹配.是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. tabs.Tab2.onCreateView(Tab2.java:33)上的AnyBookMark(Tab2.java:55)

版:

编译'io.realm:realm-android:0.78.0'

什么是获得所有结果BookMarkActive等于的正确方法true.

gei*_*irt 8

而不是query.contains("BookMarkActive","true");你能做到的query.equalTo("BookMarkActive", true);.

顺便说一句,0.78.0是一个非常古老的版本.我建议您尽快升级;-)