У меня есть базовая викторина, в которой я могу получить счет за каждую попытку со второго экрана (QuizActivity), используя приведенное ниже:
SharedPreferences preferences =
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("myHighScore", mScore);
editor.commit();
SharedPreferences preferences2 =
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor2 = preferences2.edit();
editor2.putInt("myXP", xp);
editor2.commit();
Затем я могу получить эти значения на первом экране (MainActivity), используя:
SharedPreferences preferences =
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int highScore = preferences.getInt("myHighScore", 0);
SharedPreferences preferences2 =
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int xp = preferences2.getInt("myXP",0 );
Но, xp сбрасывается каждый раз до последнего значения - мне нужно уметь сохранять общее текущее значение всех результатов в такой переменной, как xp, и добавлять к ней каждый раз, когда тест завершается.
Нужно ли мне использовать здесь больше общих преференций, сохранять текущее значение на первом экране, выводить его на второй экран и отправлять обратно на первый экран? Чувствую, что я слишком запутываю проблему сейчас. Любая помощь приветствуется
Приветствия