У меня есть этот кусок кода, который хранит «переключатель» для определенного элемента в списке. Я использую имя элемента в качестве ключа. Однако результат getBoolean всегда возвращает значение по умолчанию, указанное во втором параметре. Я не могу понять, не выполнил ли я это неправильно, или я что-то не замечаю
Для пояснения, summonerNames является архаистом Strings.Доступ к общим настройкам не работает правильно
MenuItem toggle = menu.findItem(R.id.postGameNotif);
SharedPreferences prefs = getApplicationContext().getSharedPreferences("summoner_prefs", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
Log.i(TAG, summonerNames.get(position));
boolean postNotif = prefs.getBoolean(summonerNames.get(position),false);
if (postNotif == true) {
toggle.setTitle("Disable post-game notifications");
Log.i(TAG,"Disabled");
editor.putBoolean(summonerNames.get(position), false);
}
else {
toggle.setTitle("Enable post-game notifications");
Log.i(TAG, "Enabled");
editor.putBoolean(summonerNames.get(position), true);
Log.i(TAG, String.valueOf(prefs.getBoolean(summonerNames.get(position),false)));
}
Вы забыли 'совершить()' –
Добавить editor.commit() и editor.apply() в отражают изменения в ваших общих привилегиях. –