没有存储多个SharedPreferences

时间:2019-05-08 13:56:25

标签: android sharedpreferences android-lifecycle

我正在使用SharedPrefrences。我在偏好中有多个共享的首选项。我正在循环中将值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 个答案:

答案 0 :(得分:1)

您没有向我们展示代码,您如何尝试从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");
        }
    }