2013-08-20 4 views
0

Что за ребят, я разрабатываю игру для Android, и у меня есть одна проблема, которую я не нашел в internet.I хочу сохранить высокий балл с помощью общих настроек, и это код:Android Сохранить результаты

Play Class : 
     SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE); 
     Editor edit = prefs.edit(); 
     edit.putInt("key", score); 
     edit.commit(); 
     Toast.makeText(getApplicationContext(), "SAVED", Toast.LENGTH_LONG).show(); 

     Intent it = new Intent(getApplicationContext(),HighScore.class); 
     startActivity(it); 

И это высокий балл список кодов:

highscore = (TextView) findViewById(R.id.highscore_int); 
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", 
                Context.MODE_PRIVATE); 
int score = prefs.getInt("key", 0); //0 is the default value 
highscore.setText(""+score); 

Это прекрасно работает, но при этом сохраняет все результаты даже это меньше, чем предыдущий. Я хочу сохранить результат, только если он больше, чем предыдущий. Как я могу это сделать? PS:. Извините за мой английский, и я не знаю, как выделить код :(

+2

Вы бегали по проблеме, что вы не смогли найти в Интернете - не так попробуйте найти «как определить, какое число больше из двух?», потому что это то, что вам нужно сделать. Проверьте текущий балл против одного из общих настроек и перейдите с более крупным. – Shark

+0

Да, но как проверить предыдущий номер I сохранить оценки одним именем – Developer

+1

Сначала сравните оценки. Если новый балл больше, чем сохраненный, измените его, иначе ничего не сделайте – Tugrul

ответ

8
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE); 
int oldScore = prefs.getInt("key", 0); 
if(newScore > oldScore){ 
    Editor edit = prefs.edit(); 
    edit.putInt("key", newScore); 
    edit.commit(); 
} 

увидеть

+0

Отлично работает большое спасибо – Developer

Смежные вопросы