簡體   English   中英

Android - Realm如何通過布爾查詢

[英]Android - Realm how to query by boolean

我已經開始使用'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;
    }
}

功能:

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();
}

錯誤:

致命異常:主程序: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

而不是query.contains("BookMarkActive","true"); 你可以做query.equalTo("BookMarkActive", true);

順便說一句,0.78.0是一個非常古老的版本。 我建議您盡快升級;-)

功能應該是這樣的:

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列應為String類型。 如果是其他類型,則應傳遞相應的值而不是“true”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM