Общие настройки не сохраняют данные

Инициализация массива 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();
                }

person JDFuzyll    schedule 23.11.2016    source источник
comment
Пожалуйста, проверьте здесь: stackoverflow.com/questions/23024831/   -  person Babaji Pokharkar    schedule 23.11.2016
comment
это полный код для сохранения значения в настройках?   -  person amit singh    schedule 23.11.2016
comment
Вы инициализировали общие настройки ключевыми баллами?   -  person Madhav    schedule 23.11.2016
comment
Можете ли вы попробовать использовать e.commit(); вместо e.apply();   -  person Nakul Sudhakar    schedule 23.11.2016
comment
@NakulSudhakar Применить быстрее, чем зафиксировать. У них одинаковая функциональность.   -  person Madhav    schedule 23.11.2016
comment
@JDFuzyll: попробуйте записать эти значения "score"+(j+1)   -  person karan    schedule 23.11.2016
comment
попробуйте отладить свой код, это поможет.   -  person karan    schedule 23.11.2016


Ответы (2)


Я предложу использовать так.

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();
person Nitin Karande    schedule 23.11.2016
comment
Мой объект SharedPreferences общедоступен public SharedPreferences sharedPreferences; - person JDFuzyll; 23.11.2016
comment
@JDFuzyll Вы пробовали это? Я бы рекомендовал загружать объект общих настроек каждый раз, когда вы собираетесь его использовать. Не хранить его глобально. - person IAmGroot; 23.11.2016
comment
Большое спасибо Это сработало - person JDFuzyll; 23.11.2016
comment
Очень рад помочь вам. @JDFuzyll - person Nitin Karande; 23.11.2016

Вместо того, чтобы фиксировать после завершения цикла if, фиксируйте в каждой итерации вашего цикла следующим образом:

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

это будет работать.

person Anjali    schedule 23.11.2016