Java Android-Realm如何获取价值

Java Android-Realm如何获取价值,java,android,realm,android-database,Java,Android,Realm,Android Database,我正在尝试获取已保存在领域中的值,但我不知道如何操作。。该值始终为空。。但当我调试代码时,该值会出现,如下图所示: 注意:BookMarkActive&idBookMark在所选的 但下面的行没有显示任何内容 我怎样才能得到这个值 查看与图中相同的代码: public String UpdateBookMarks(String id){ Realm realm = Realm.getInstance(_context); RealmQuery<Bookmark> q

我正在尝试获取已保存在
领域中的值,但我不知道如何操作。。该值始终为空。。但当我调试代码时,该值会出现,如下图所示:

注意:
BookMarkActive
&
idBookMark
在所选的 但下面的行没有显示任何内容

我怎样才能得到这个值

查看与图中相同的代码:

public String UpdateBookMarks(String id){
    Realm realm = Realm.getInstance(_context);
    RealmQuery<Bookmark> query = realm.where(Bookmark.class);
    query.equalTo("IdBookMark", id);
    Bookmark stationDetails = query.findFirst();
    if(stationDetails.getBookMarkActive() == "true"){
        stationDetails.setIdBookMark("false");
        return "Station has been removed from your bookmark list.";
    }else if (stationDetails.getBookMarkActive() == "false"){
        stationDetails.setIdBookMark("true");
        return "Station has been added to your bookmark list.";
    }
    return "Error";
}
注意:领域版本'io.Realm:realmandroid:0.87.2'


对于Realm管理的RealmObjects,您不能信任Android Studio中的调试视图。它们只是存储在本机内存中的真正底层数据的代理对象。这意味着该字段将仅显示该字段的默认值:
0
用于
int
null
用于
字符串和引用


您可以在此处阅读更多信息:

因此,当您调用
stationDetails.getBookMarkActive()
时,它会崩溃,因为
stationDetails
为空?是的……但是该值在图像中的选定行中,您可以使用,但我会得到空值。您知道我的意思吗@顺便问一下,
stationDetails.getBookMarkActive()
是否返回字符串?如果是这样,您应该将其与
.equals(“true”)
进行比较,否则将其与
true
进行比较,而不是与
的“true”
进行比较。else分支也是如此。我已经更新了代码,以便您可以看到我的类(
BookMarkActive
是一个字符串)。我得到空值,我不知道为什么,我怎么能得到它@Cylon请注意,您不能信任RealmObjects的调试视图,因为它们只是底层数据的代理。您可以在这里看到阅读:只是一个旁注:您可以在调试时通过使用“watchs”窗口并直接调用对象上的变量或使用变量的强制getter来获取变量的实际值。
@RealmClass
public class Bookmark extends RealmObject {
    private java.lang.String IdBookMark;
    private String BookMarkActive;

    public String getIdBookMark() {
        return IdBookMark;
    }

    public void setIdBookMark(String idBookMark) {
        IdBookMark = idBookMark;
    }

    public String getBookMarkActive() {
        return BookMarkActive;
    }

    public void setBookMarkActive(String bookMarkActive) {
        BookMarkActive = bookMarkActive;
    }
}