Android Studio问题继续增加计数器

问题描述 投票:0回答:1

我正努力成为游戏的一部分,当您按下fab图标,TextView时,增加数字。它从零开始,然后增加一。我试图保存该数字,以便下次找到它,启动该应用程序并继续增加它。我是新手,我进行了一些搜索。

我写了一个代码,当我关闭并重新打开它时,它会保留该数字,但是当我按下fab图标时,它从头开始,而不是从我保存的数字开始。也许我对保存代码的工作方式不太了解。谁能帮我?谢谢!

我在MainActivity中的代码是:

int newAge;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        final TextView age  = (TextView) findViewById(R.id.age);

        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                newAge++;
                age.setText(String.valueOf(newAge));
            }
        });

        //getting preferences
        SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
        int savedAge = prefs.getInt("key", 0); //0 is the default value
        age.setText(String.valueOf(savedAge));

    }
    @Override
    protected void onStop(){
        super.onStop();
        SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putInt("key", newAge);
        editor.commit();
    }
android save counter continue
1个回答
0
投票

您必须将savedAge应用于newAge

int newAge;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    final TextView age  = (TextView) findViewById(R.id.age);

    //getting preferences
    SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
    int savedAge = prefs.getInt("key", 0); //0 is the default value
    age.setText(String.valueOf(savedAge));
    newAge = savedAge; //set the age value, to further increase it by a button click

    FloatingActionButton fab = findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            newAge++;
            age.setText(String.valueOf(newAge));
        }
    });



}
@Override
protected void onStop(){
    super.onStop();
    SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putInt("key", newAge);
    editor.commit();
}
© www.soinside.com 2019 - 2024. All rights reserved.