我想将 int 存储在SharedPreferences
. int 代表用户在我的游戏中所处的级别。在游戏开始之前,执行以下代码:
int level;
// Restore preferences
SharedPreferences settings = getSharedPreferences("level_SP", 0);
level = settings.getInt("currentLevel", 0);
if(level == 0) {
level++;
}
String str = Integer.toString(level);
title.setText(str);
输出的文本title.setText(str);
是1
。
出于测试目的,无论用户在游戏中的表现如何,他都会通过关卡。游戏结束后,执行此代码。
public void levels() {
// do calculations here to see if user passed level.
// Restore preferences
SharedPreferences settings = getSharedPreferences("level_SP", 0);
int level = settings.getInt("currentLevel", 0);
int newLevel = level++;
// We need an Editor object to make preference changes.
SharedPreferences.Editor editor = settings.edit();
editor.putInt("currentLevel", newLevel);
// Commit the edits!
editor.commit();
}
然后当用户再次开始游戏时,他们应该是第 2 级。在贴在这篇文章顶部的代码中,这行代码: title.setText(str);
应该输出2
,但它仍然在说1
。这告诉我,我存储的 intSharedPreferences
没有递增。
我的问题是,我“得到”SharedPreferences
正确吗?如果是,我SharedPreferences
是否正确“编辑”?如果不是任何一个,我做错了什么?
编辑
思想:0
分散在我上面的代码中是否意味着什么?他们应该是别的东西吗?