【问题标题】:Unable to save highscore of game using shared preferences?无法使用共享偏好保存游戏的高分?
【发布时间】:2014-05-18 18:11:58
【问题描述】:

这是我用来保存高分的游戏代码

SharedPreferences preferences = null;
SharedPreferences.Editor editor = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);

    //Highscore.easyHigh = 0;

    Highscore.easyHigh = preferences.getInt("EasyScore", 0);
    Highscore.mediumHigh = preferences.getInt("MediumScore", 0);
    Highscore.hardHigh = preferences.getInt("HardScore", 0);

现在我在玩家输掉游戏时设置这些值

editor = preferences.edit();
        if(level==1)
        editor.putInt("EasyScore", score);
        else if(level==2)
        editor.putInt("MediumScore", score);
        else if(level==3)
        editor.putInt("HardScore", score);
        editor.commit();

高分是我的类存储公共静态 int 容易、中等、困难吗?

我得到一个空指针异常,但为什么会发生这种情况?

【问题讨论】:

  • 你还没有初始化preferenceseditor..在你的代码中setContentView()之后做..
  • 如果您将您的游戏值保存在SharedPreferences,那么所有拥有root 设备的人都可以在您的游戏中作弊。

标签: java android sharedpreferences


【解决方案1】:

您的首选项和编辑器值未初始化,请使用:

preferences = PreferencesManager.getDefaultSharedPreferenes(this);
editor = preferences.edit();

【讨论】:

    【解决方案2】:

    你还没有初始化preferenceseditor..在你的代码中的setContentView() 之后做..

    这样做..

    preferences = PreferencesManager.getDefaultSharedPreferenes(this);
    editor = preferences.edit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 2015-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多