Сохранить несколько состояний флажков - PullRequest
0 голосов
/ 22 февраля 2012

Я использовал этот код, чтобы сохранить один флажок, когда пользователь вернется, но мне нужно иметь много флажков в приложении. Я уверен, что лучший способ не скопировать и вставить этот код, но, похоже, не могу найти, что это такое.

Что бы я добавил или изменил, чтобы заставить это работать, скажем, с 10 или более флажками?

@Override
public void onPause() {
    super.onPause();
    save(mCheckBox.isChecked());
}

@Override
public void onResume() {
    super.onResume();
    mCheckBox.setChecked(load());
}

private void save(final boolean isChecked) {
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putBoolean("check", isChecked);
    editor.commit();
}

private boolean load() {
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    return sharedPreferences.getBoolean("check", false);
}

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012
private void save (final String checkboxId, final boolean isChecked) {
   // shared prefs yadda
   editor.putBoolean(checkboxId, isChecked).commit();
}

Или создайте собственную схему (SQLite и т. Д.) И сохраните ее таким образом. В любом случае каждый уникальный флажок должен иметь уникальный идентификатор в постоянном хранилище.

0 голосов
/ 22 февраля 2012

Вы можете хранить свои флажки в массиве.

@Override
public void onPause() {
    for (int i = 0; i < checkBoxArr.length; i++) {
        save(i, checkBoxArr[i].isChecked());
    }
}

private void save(int index, boolean isChecked) {
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putBoolean("check" + index, isChecked);
    editor.commit();
}

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