Как установить общие предпочтения

Я пытаюсь установить общее предпочтение, но приведенный ниже код приводит к 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, иначе ничего не будет сохранено.

Другие вопросы по тегам