Java 从停止的地方继续?
如果我在我的应用程序中添加一个数字,比如说15个,我想确保下次打开我的应用程序时,无论它是否崩溃、手机是否重启或应用程序是否退出;它应该从数字15开始,而不是从0开始。我该怎么做呢 我试过这样的东西。这可能是错误的,不知道如何修复它Java 从停止的地方继续?,java,android,save,Java,Android,Save,如果我在我的应用程序中添加一个数字,比如说15个,我想确保下次打开我的应用程序时,无论它是否崩溃、手机是否重启或应用程序是否退出;它应该从数字15开始,而不是从0开始。我该怎么做呢 我试过这样的东西。这可能是错误的,不知道如何修复它 public class MainActivity extends Activity { private int i = 0; @Override protected void onCreate(Bundle savedInstanceState) { su
public class MainActivity extends Activity {
private int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.but);
final TextView txt = (TextView) findViewById(R.id.txt);
final SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = app_preferences.edit();
i++;
txt.setText(" " + i);
i++;
editor.putInt("Scores: ", i);
editor.commit();
}
});
}
}
请看我到目前为止所做的尝试。将
putin
内容放在onPause
方法中。这很有效!现在唯一的问题是,当我重新打开应用程序时,在单击按钮之前,它不会显示任何内容,而不是“int”,但我希望显示之前的数字。谢谢你的帮助。:)我想我现在明白了。我放置了txt.setText(“+I”);在onClick()方法之前。
public class MainActivity extends Activity {
private int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// let i be previously saved value or default to zero
i = app_preferences.getInt("Scores: ",0);
Button btn = (Button) findViewById(R.id.but);
final TextView txt = (TextView) findViewById(R.id.txt);
final SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = app_preferences.edit();
i++;
txt.setText(" " + i);
//i++; maybe DONT really increment twice (unless thats what you intended)
editor.putInt("Scores: ", i);
editor.commit();
}
});
}
}