Несколько SharedPreferences не сохраняются - PullRequest
0 голосов
/ 08 мая 2019

Я работаю с SharedPrefferences. У меня есть несколько общих предпочтений в прив. Я изменяю значения от 0 до n-1 в цикле, в то время как другое значение - оценка пользователя. Возможно, есть какая-то проблема с моим использованием commit (), но значение не обновляется. Можете ли вы предложить, что мне делать?

SharedPreferences pref = getApplicationContext().getSharedPreferences("Scorepref", 0);
SharedPreferences.Editor editor = pref.edit();

for (int i = 0; i < mQuestionBank.length; i++) {
    editor.putBoolean(Integer.toString(i), false);
    editor.commit();
}

mAnswered.setText( "0/" +Integer.toString(mQuestionBank.length));

mScoreval = 0;
mAnswered_count=0;

editor.putInt("User_score", 0);
editor.commit();

mScore.setText("0");

1 Ответ

1 голос
/ 08 мая 2019

Вы не показали нам код, как вы пытаетесь прочитать данные из prefs, но в любом случае в вашем случае, если вы не можете прочитать данные по prefs.getBoolean, то вы можете выполнить итерацию по pref.getAll() нравится:

    if (pref.getAll() != null) {
        for (int i = 0; i < mQuestionBank.size(); i++) {

            if (pref.getAll().get(String.valueOf(i)) instanceof Boolean) {
                final Boolean yourSavedBoolean = (Boolean) pref.getAll().get(i);
            }
        }
    }

Или, если вам нужно только одно значение, то:

    if (pref.getAll() != null) {
        Boolean yourSavedBoolean = false;
        if (pref.getAll().get("0") != null && pref.getAll().get("0") instanceof Boolean) {
            yourSavedBoolean = (Boolean) pref.getAll().get("0");
        }
    }
...