SharedPreferences变量无法正常工作

时间:2012-07-29 00:35:06

标签: java android eclipse

每次我在名为GameActivity的类中重新创建活动时,我都会尝试存储一个值来保持分数。我在我的onCreate()方法中添加了以下代码:

SharedPreferences settings = getSharedPreferences("Score", 0);
    int lastscore = settings.getInt("Score", 0 );
    score=lastscore;
    mScoreView.setText("Score: "+ score);

mScoreView是一个TextView对象,假设每次重新创建活动时都会使用当前分数进行更新,score是一个实例变量。我有一个按钮,在每个游戏结束时弹出,让用户通过重新创建活动继续播放。以下是该按钮的单击侦听器:

private class MyButtonListener2 implements OnClickListener {

    public void onClick(View v) {
        State player = mGameView.getCurrentPlayer();
        Bundle myBundle=new Bundle();
          firstGame=false;

        if (player == State.WIN) {
            if(player==State.WIN){
                SharedPreferences scoreSaved = getSharedPreferences("Score",0);
                SharedPreferences.Editor edit = scoreSaved.edit();
                edit.putInt("Score", score++);
                edit.commit();
                //onCreate(myBundle);
        }
            else{
                myBundle.putInt("score1", 0);
                //onCreate(myBundle);
            }
                 GameActivity.this.recreate();
                 onCreate(myBundle);
}}

每当游戏以人类玩家获胜(State.WIN)结束时,该分数被假设为增加1。但是,分数无法正确更新。我在捕捉错误时遇到问题

1 个答案:

答案 0 :(得分:1)

使用:

edit.putInt("Score", ++score);

edit.putInt("Score", score + 1);