не может получить обновленные логические данные или правильно обновить их в базе данных области - PullRequest
0 голосов
/ 25 мая 2018

Я использую базу данных областей для сохранения данных.Хотя мне удалось сохранить данные 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;
}

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...