に 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);
はずです。これは、格納した intが増加していないことを示しています。2
1
SharedPreferences
私の質問は、SharedPreferences
正しく「取得」していますか? SharedPreferences
はいの場合、正しく「編集」していますか? どちらでもない場合、何が間違っていますか?
編集
考え:0
上記のコード全体に散らばっている は何か意味がありますか? それらは別のものであるべきですか?