Я пытаюсь использовать 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();
}
** Я знаю, что есть лучший способ сделать это, но я очень начинающий программист. Я попытался следовать совету другого потока
но везде, где я пытался поместить строки
protected AppPreferences appPrefs;
appPrefs = new AppPreferences(getApplicationContext());
Я получаю ошибку того или иного типа. Но самое главное, читая другие комментарии к потоку, люди говорят, что SharedPreferences автоматически распределяются между действиями внутри одного и того же пакета, так как я думал, что они работают.