我正努力成为游戏的一部分,当您按下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();
}
您必须将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();
}