我昨天开始玩这个,所以我希望我做的事非常愚蠢。
我的应用程序有两个类/活动:PuzzleSelection和SolvePuzzle。
我的PuzzleSelection onCreate看起来像这样:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_puzzle_selection);
Intent intent = getIntent();
int increment_puzzles_solved = intent.getIntExtra(PuzzleSelection.INCR_COUNTER, 0);
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
int puzzles_solved = sharedPref.getInt(getString(R.string.puzzles_solved), 0);
if (increment_puzzles_solved > 0) {
puzzles_solved += increment_puzzles_solved;
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.puzzles_solved), puzzles_solved);
editor.commit();
}
TextView puzzle_counter = (TextView) findViewById(R.id.puzzle_counter);
puzzle_counter.setText(getString(R.string.puzzles_solved) + " " + puzzles_solved);
}
我的PuzzleSelection活动包括一个TextView,通常会说“拼图解决:n”,其中每次进入SolvePuzzle活动时n应该递增并成功解决它(它会在意图中使用IntExtra PuzzleSelection.INCR_COUNTER将其发送回PuzzleSelection )。
我正在通过USB将手机连接到电脑,并使用eclipse将应用程序发送到手机来测试应用程序。
我的计数器在会话中按预期工作:计数器从零开始,每次解决拼图时都会递增。所以数据似乎仍然存在......
但是如果我重新启动应用程序,计数器将重置为零。我究竟做错了什么?我以为我的数据会在会话中持续存在......
答案 0 :(得分:0)
更改此
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
到
SharedPreferences sharedPref = getSharedPreferences(<PreferenceName>, <Mode>);
在两个活动中使用它来获取SharedPreferences
的实例。