Я использую базу данных областей для сохранения данных.Хотя мне удалось сохранить данные String и int, проблема в булевых значениях.Я использую флажок и пытаюсь сохранить состояние, независимо от того, отмечен элемент или нет, но я не могу этого сделать, хотя я делаю то же самое, что и для данных 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;
}
Спасибо.