2013-12-20 2 views
0

Я пытаюсь установить общие предпочтения, но приведенный ниже код приводит к 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(); 
1

после использования editor.putBoolean("mobile_flag",true); вам нужно поставить editor.commit(). Это сохранит ваш sharedPreference, иначе ничего не будет сохранено.

2

Необходимо выполнить изменения после завершения редактирования переменных в SharedPreferences.

editor.commit(); 
Смежные вопросы