Как установить общие предпочтения
Я пытаюсь установить общее предпочтение, но приведенный ниже код приводит к false
в обоих случаях.
Сначала я получаю значение флага, когда он не существует, и ожидаю false
, Однако затем я устанавливаю значение true
и принеси флаг снова, и на этот раз я ожидаю true
но это все еще false
,
SharedPreferences sharedPref = getSharedPreferences("myapp",0);
//fetch value when it does not exist
Boolean mobileFlag = sharedPref.getBoolean("mobile_flag", false);
Log.d("mobileFlag1", mobileFlag+"");
//set the value
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("mobile_flag",true);
//fetch value when it has been set.
mobileFlag = sharedPref.getBoolean("mobile_flag", false);
Log.d("mobileFlag2", mobileFlag+"");
Оба раза результаты сообщений журнала:
D/mobileFlag1﹕ false
D/mobileFlag2﹕ false
3 ответа
Вы не зафиксировали новое значение
editor.putBoolean("mobile_flag",true).commit();
Вам нужно зафиксировать свои изменения после того, как вы закончите редактирование переменных в ваших SharedPreferences.
editor.commit();
После использования editor.putBoolean("mobile_flag",true);
вам нужно положить editor.commit()
, Это сохранит ваш sharedPreference, иначе ничего не будет сохранено.