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