1

共有設定を試していますが、変更を永続的に保存することができません。

SharedPreferences prefs;
SharedPreferences.Editor prefsEditor;
String lastPlayerPref = "LAST_PLAYER";

public void onCreate(Bundle savedInstanceState) {
    prefs = this.getSharedPreferences("myPrefs", MODE_PRIVATE);
    prefsEditor = prefs.edit();
    String lastPlayer = prefs.getString(lastPlayerPref, "test");
    System.err.println(lastPlayer);  //always outputs "test" no matter what I do

    prefsEditor.putString(lastPlayerPref, "me");
    prefsEditor.commit();

    ...
}

これを最初に実行すると、出力「test」が期待されます。その後実行すると、「me」が出力されると思います。ただし、常に「テスト」を出力します。その引数は、設定が保存されていない場合の単なるデフォルトではありませんか?

混乱させて申し訳ありません。ありがとう!

4

1 に答える 1

0

.putString(lastPlayerPref, "player1");を追加するのを忘れたと思います。

prefs = ProgressBarActivity.this.getSharedPreferences("myPrefs", MODE_PRIVATE);
prefsEditor = prefs.edit().putString(lastPlayerPref, "player1");
prefsEditor.commit();

String lastPlayer = prefs.getString(lastPlayerPref, "test");
System.err.println(lastPlayer);

prefsEditor = prefs.edit().putString(lastPlayerPref, "player2");
prefsEditor.commit();

lastPlayer = prefs.getString(lastPlayerPref, "test");
System.err.println(lastPlayer);

上記を試してみると、それが変わることがわかります

于 2012-12-06T22:22:45.807 に答える