如何设置共享首选项

时间:2013-12-20 15:28:22

标签: java android sharedpreferences

我正在尝试设置共享首选项,但以下代码在两种情况下都会产生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 个答案:

答案 0 :(得分:3)

您没有提交新值

editor.putBoolean("mobile_flag",true).commit();

答案 1 :(得分:2)

您需要在完成SharedPreferences中的变量编辑后提交更改。

editor.commit();

答案 2 :(得分:1)

使用editor.putBoolean("mobile_flag",true);后,您需要放置editor.commit()。这将保存您的sharedPreference,否则将不会保存任何内容。