SharedPreferences を使用して設定を保存しようとしています。しかし、アクティビティ間でデータを共有できないようです。私が使用しているコードは設定を保存できますが、各アクティビティには各変数の独自のバージョンがあるようです。
たとえば。ユーザーが保存される変数「musicVolume」に値を与えることができるオーディオ設定アクティビティがあります。ゲームを閉じてリロードすると、オーディオ設定アクティビティが値を「記憶」します。しかし、値を他のアクティビティにロードしようとすると、機能しません。ただし、それらはすべて、同じ名前の独自の変数をロードおよび保存できます。
これらは、変数を保存するために使用している方法です。各アクティビティには、これらの各メソッドのコピーがあります。**
私が言うように、それらは機能しますが、それらが配置されている個々のアクティビティのデータを読み書きすることしかできないようです。
public void SavePreferences(String key, float value) {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putFloat(key, value);
editor.commit();
}
public void LoadPreferences() {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
musicVolume = sharedPreferences.getFloat("musicVolume", (float)0.123);
soundEffectsVolume = sharedPreferences
.getFloat("soundEffectsVolume", (float)0.123);
}
public void ClearPreferences() {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
** これを行うためのより良い方法があることは知っていますが、私は非常に初心者の oo プログラマーです。私は別のスレッドのアドバイスに従おうとしました
しかし、どこに行を入れようとしても
protected AppPreferences appPrefs;
appPrefs = new AppPreferences(getApplicationContext());
何らかのエラーが発生します。しかし、最も重要なことは、スレッドの他のコメントを読んで、とにかく同じパッケージ内のアクティビティ間で SharedPreferences が自動的に共有されると人々が言っていることです。