共享首选项不保存数据

时间:2016-11-23 06:59:17

标签: android sharedpreferences android-sharedpreferences

初始化highScore数组:

 score = 0;
 sharedPreferences = context.getSharedPreferences("Scores", Context.MODE_PRIVATE);
    //initialize the array of high scores
    highScore[0] = sharedPreferences.getInt("score1",0);
    highScore[1] = sharedPreferences.getInt("score2",0);
    highScore[2] = sharedPreferences.getInt("score3",0);
    highScore[3] = sharedPreferences.getInt("score4",0);
    highScore[4] = sharedPreferences.getInt("score5",0);

检查4个最高值:

highScore[5] = score;
Arrays.sort(highScore);

这是我在共享偏好设置中保存数据的代码

SharedPreferences.Editor e = sharedPreferences.edit();
                for(int j=4;j>=0;j--){
                    e.putInt("score"+(j+1),highScore[j]);
                    e.apply();
                }

2 个答案:

答案 0 :(得分:1)

我建议使用那样的。

SharedPreferences pref;
pref= context.getSharedPreferences("Scores", Context.MODE_PRIVATE);
SharedPreferences.Editor e = pref.edit();
            for(int j=4;j>=0;j--){
                e.putInt("score"+(j+1),highScore[i]);
            }
            e.apply();

答案 1 :(得分:0)

不是在完成if循环后提交,而是在循环的每次迭代中提交,如下所示:

SharedPreferences.Editor e = sharedPreferences.edit();
                for(int j=4;j>=0;j--){
                    e.putInt("score"+(j+1),highScore[i]);
                              e.apply();
  }

它会起作用。