java - 如何设置共享首选项

标签 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

最佳答案

您没有提交新值

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

关于java - 如何设置共享首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20706892/

相关文章:

java - 如何使用 ListPreferences 保存和应用用户设置?

java - 向多边形添加一个角

c# - 在 C# 中等效于 Java 的 "ByteBuffer.putType()"

android - 使用其在android中的id将布局插入到另一个布局中

android - Turbolinks 5 和 Android : Fails when use file upload (webview)

android - 将 JSON 数据加载到 android listpreference

java - Dagger 2 : How to use @Inject in a JUnit test?

java - java中的匿名函数

Android Activity 到 WebView 和 WebView 到 Activity 的参数传递

android - SharedPreferences 的应用程序上下文?