【问题标题】:How to store a boolean value using SharedPreferences in Android?如何在 Android 中使用 SharedPreferences 存储布尔值?
【发布时间】:2014-07-18 03:10:32
【问题描述】:

我想保存布尔值,然后在 if-else 块中比较它们。

我现在的逻辑是:

boolean locked = true;
if (locked == true) {
    /* SETBoolean TO FALSE */
} else {
    Intent newActivity4 = new Intent(parent.getContext(), Tag1.class);
    startActivity(newActivity4);
}

如何保存设置为 false 的布尔变量?

【问题讨论】:

    标签: android if-statement boolean sharedpreferences


    【解决方案1】:
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(); 
    Boolean statusLocked = prefs.edit().putBoolean("locked", true).commit();
    

    如果您不关心返回值(状态),那么您应该使用 .apply(),因为它是异步的,所以速度更快。

    prefs.edit().putBoolean("locked", true).apply();
    

    让他们回来使用

    Boolean yourLocked = prefs.getBoolean("locked", false);
    

    而 false 是失败或未设置时的默认值

    在您的代码中,它看起来像这样:

    boolean locked = true;
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(); 
    if (locked) { 
    //maybe you want to check it by getting the sharedpreferences. Use this instead if (locked)
    // if (prefs.getBoolean("locked", locked) {
       prefs.edit().putBoolean("locked", true).commit();
    } else {
       startActivity(new Intent(parent.getContext(), Tag1.class));
    }
    

    【讨论】:

    • 我必须把这个放在哪里?到 if 语句?
    • @Emanuel:当心:您必须提交您对 SharedPreferences 的写入。还要确保在其上打开一个编辑器
    • 检查我的来源 ;-) 仔细检查 true)->commit()
    • 在 API 级别 9 或更高级别中,您通常应该更喜欢 apply() 而不是 commit(),请参阅 developer.android.com/reference/android/content/…
    • boolxml类型如果需要存储在xml
    猜你喜欢
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2021-12-04
    • 2019-02-10
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多