Как загрузить сохраненное значение «рекорд» в мой MainActicity? - PullRequest
0 голосов
/ 15 января 2019

В моем 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();

        }
    }

1 Ответ

0 голосов
/ 15 января 2019

Я решил загрузку сохраненных данных таким образом.

SharedPreferences pref = getSharedPreferences("HighScore",Context.MODE_PRIVATE); //this file was previously created, I just loaded it.
 int hs = pref.getInt("HS",0);
 hsTxt.setText(String.valueOf(hs));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...