Java can';t检索更新的布尔数据或在领域数据库中正确更新它
我正在使用领域数据库来保存数据。虽然我成功地保存了字符串和int数据,但问题是布尔值。我使用了一个复选框,并试图保存一个项目是否被选中的状态,但我不能这样做,即使我的做法与我对字符串和int数据所做的相同。更具体地说,我可以暂时保存布尔数据,但在关闭应用程序后无法检索数据。我确认数据在我选中后立即保存,并在使用调试器关闭后设置默认值。谁能告诉我为什么会这样 这是我的复选框代码Java can';t检索更新的布尔数据或在领域数据库中正确更新它,java,android,realm,Java,Android,Realm,我正在使用领域数据库来保存数据。虽然我成功地保存了字符串和int数据,但问题是布尔值。我使用了一个复选框,并试图保存一个项目是否被选中的状态,但我不能这样做,即使我的做法与我对字符串和int数据所做的相同。更具体地说,我可以暂时保存布尔数据,但在关闭应用程序后无法检索数据。我确认数据在我选中后立即保存,并在使用调试器关闭后设置默认值。谁能告诉我为什么会这样 这是我的复选框代码 mRealm = Realm.getDefaultInstance(); mWordData = mRe
mRealm = Realm.getDefaultInstance();
mWordData = mRealm.where(Word.class).equalTo("id", mWordId).findFirst(); //mWordId is sent from another activity by using intent and this mWordData works properly because it doesn't return null
public void onCheckboxClicked(View view) {
// Is the view now checked?
boolean checked = ((CheckBox) view).isChecked();
// Check which checkbox was clicked
switch (view.getId()) {
case R.id.checkButton:
if (checked) {
mRealm.beginTransaction();
mWordData.setChecked(true);
mRealm.copyToRealmOrUpdate(mWordData);
mRealm.commitTransaction();
} else {
mRealm.beginTransaction();
mWordData.setChecked(false);
mRealm.copyToRealmOrUpdate(mWordData);
mRealm.commitTransaction();
}
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mRealm.close();
}
这是给模特班的
@PrimaryKey
private int id;
private boolean checked;
public void setId(String sid) {
id = Integer.parseInt(sid);
this.id = id;
}
public int getId() {
return id;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
public boolean isChecked() {
return checked;
}
谢谢。我不知道
mWordData
从哪里来,也不知道它是否有主key@EpicPandaForce这是我的建议id@PrimaryKey私有int-id;public void setId(String sid){id=Integer.parseInt(sid);this.id=id;}public int getId(){return id;}这里是mwordatamworddata=mRealm.where(Word.class).equalTo(“id”,mWordId.findFirst();