Java 如何加载保存的值';高分';进入我的主城?

Java 如何加载保存的值';高分';进入我的主城?,java,android,sharedpreferences,Java,Android,Sharedpreferences,在我的游戏.class中,我已经为高分保存了一个值,当我在同一个活动中加载它时,它可以完美地工作 这里的问题是,当我想在main活动中显示highscore时,它会显示默认值,即0 然后,当我继续游戏并正确显示它时,因为一旦我运行game.class活动,它就会加载保存的值 但如果我关闭应用程序并重新启动它,它会再次显示默认值0。 打开应用程序后,如何加载保存的值而不是默认值 public class MainActivity extends AppCompatActivity { T

在我的
游戏.class
中,我已经为
高分
保存了一个值,当我在同一个活动中加载它时,它可以完美地工作

这里的问题是,当我想在
main活动中显示
highscore
时,它会显示默认值,即0

然后,当我继续游戏并正确显示它时,因为一旦我运行
game.class活动
,它就会加载保存的值

但如果我关闭应用程序并重新启动它,它会再次显示默认值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();

        }
    }

通过这种方式加载保存的数据,我解决了这个问题

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));

在代码中,我首先向您展示了主要活动,然后是游戏活动。这个问题几乎没有问题和解决方案,您的应用程序是否以MainActivity开始?你在活动之间的意图是什么?您可以使用
extra
,而对于介于
game活动
main活动
之间的活动,它从main活动开始,然后用户按下一个按钮就转到gameActivity