[英]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.