我正在使用realm数据库来保存数据。虽然我已经成功保存了String和int数据,但问题是boolean。我使用一个复选框,并试图保存一个项目是否被检查的状态,但我不能这样做,即使我的方式与我对String和int数据的方式相同。更具体地说,我可以暂时保存布尔数据但是在关闭应用程序后无法检索数据。我确认数据在我检查后立即保存,并在使用调试器关闭后设置默认值。任何人都可以告诉我为什么会这样?
这是我的复选框代码
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;
}
感谢。