Мне удалось получить мой счет, чтобы сохранить его в SharedPreferences правильно, а также сохранить его в рекорд. Однако, проверяя, что предыдущий результат лучше, чем сохраненный рекордер, он всегда сохраняет его, несмотря ни на что, и я не знаю почему.Перезапись предыдущего рекорда с использованием sharedpreferences
// save score and time if current score is > than current highscore and time is > than current hightime
if (score > scorePreferences.getInt("highscore", 0) && time > timePreferences.getInt("hightime", 0)) {
highscorePreferences = getContext().getSharedPreferences("highscore", 0);
SharedPreferences.Editor editorHighscore = highscorePreferences.edit();
editorHighscore.putInt("highscore", score);
editorHighscore.commit();
timePreferences = getContext().getSharedPreferences("hightime", 0);
SharedPreferences.Editor editorHightime = timePreferences.edit();
editorHightime.putInt("hightime", time);
editorHightime.commit();
}
Затем он получает читать gameoveractivity и деятельности с использованием рекордов этот код:
// load score from last session
private void load() {
// get score and set text field
scorePreferences = getSharedPreferences("score", 0);
score = scorePreferences.getInt("score", 0);
scoreValue.setText(Integer.toString(score));
// get time and set text field
timePreferences = getSharedPreferences("time", 0);
time = timePreferences.getInt("time", 0);
timeValue.setText(Integer.toString(time) + " seconds");
// get highscore and set text field
highscorePreferences = getSharedPreferences("highscore", 0);
highscore = highscorePreferences.getInt("highscore", 0);
highscoreValue.setText(Integer.toString(highscore));
}
Разбивайте свою первую линию, как так что вы можете узнать, почему: 'int currentHighScore = scorePreferences.getInt (" highscore ", 0); int currentHighTime = timePreferences.getInt ("hightime", 0); Log.i ("score", currentHighScore + "" + currentHighTime); if (score> currentHighScore && time> currentHighTime) {' – Tenfour04
Лучше ли лучше? – Broak
Кстати, вам не нужны отдельные файлы SharedPreferences для каждого типа записей. Вот почему записи имеют ключи. SharedPreferences очень похож на HashMap. Кроме того, поскольку вы используете переменную-член для каждого из ваших экземпляров общих настроек, вам не нужно продолжать вызов getSharedPreference после того, как вы впервые это сделаете в 'onCreate'. – Tenfour04