В моем Game.class
у меня уже есть сохраненное значение для highscore
, и когда я загружаю его в том же упражнении, оно отлично работает.
Проблема здесь в том, что когда я хочу показать highscore
в MainActivity
, он показывает значение по умолчанию, равное 0.
Затем, когда я продолжаю игру, и она показывает ее правильно, поскольку она загружает сохраненное значение, РАЗ, я запускаю Game.class Activity
.
Но если я закрою приложение и перезапущу его, СНОВА оно показывает значение по умолчанию 0.
Как загрузить сохраненное значение, а не значение по умолчанию после открытия приложения?
public class MainActivity extends AppCompatActivity {
TextView hsTxt; //highscore View
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hsTxt = findViewById(R.id.hs_main);
hsTxt.setText(String.valueOf(game.highscore));
}
}
public class game extends AppCompatActivity {
TextView hsTxt;
TextView scTxt;
int counter_int; //contador tomado del textView
String result;
String counter_string;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
hsTxt = findViewById(R.id.highscoreTxt);
scTxt = findViewById(R.id.scoreTxt);
SharedPreferences pref = getSharedPreferences("HighScore", Context.MODE_PRIVATE);
highscore = pref.getInt("HS", 0); //HERE IS THE DEFAULT VALUE
}
public void TapShape(View view) {
counter_string = counterLayout.getText().toString();
counter_int = Integer.parseInt(counter_string);
counter_int += 10; //CONTADOR AUMENTA DE 10 SIEMPRE
score = counter_int;
result = String.valueOf(counter_int);
counterLayout.setText(result); //SCORE IS INCREMENTED PER TAP
if (score > highscore) {
highscore = score;
//HERE I SAVED THE HIGHSCORE
SharedPreferences pref = getSharedPreferences("HighScore", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit(); //se edita el archivo 'HighScore'
editor.putInt("HS", highscore);
editor.commit();
}
}