【问题标题】:Save value from custom Preference从自定义首选项中保存价值
【发布时间】:2015-04-13 21:07:03
【问题描述】:

我创建了一个直接从CheckboxPreference 扩展的新首选项。在这个类中,我添加了一个简单的新 boolean 值。我现在的问题是如何存储这个新值。如果用户单击普通的CheckboxPreference,则该值会自动存储在首选项中。我希望这也发生在我的新价值中。为此,我认为我必须覆盖一个方法,但我不知道它们中的哪一个。此外,我现在有两个 boolean 值(检查和我自己的),所以我必须用整数构建一个逻辑或类似的东西,因为两个布尔值有四种不同的可能性。那么如何有效地存储我的两个值,我必须为此覆盖哪种方法?

【问题讨论】:

    标签: android android-preferences


    【解决方案1】:

    您应该使用 SharedPreference 来存储值和密钥对。例如键是“colorPreference”,值是“green”。即使关闭应用也不会被删除。

    //设置共享偏好

    public static SharedPreferences sharedPreferencesFDefault;
    sharedPreferencesFDefault = PreferenceManager.getDefaultSharedPreferences(this);
    

    //添加你想要的东西

    SharedPreferences.Editor editor = sharedPreferencesFDefault.edit();
    editor.putInt("studentNameColor", 2); // studentNameColor=2 for example
    editor.commit();
    

    //获取你存储的值

    int color = sharedPreferencesFDefault.getInt("studentNameColor", -1); // gets 2, if this key is not found, returns -1
    

    //如果不再需要,删除key-value

    SharedPreferences.Editor editor = sharedPreferencesFDefault.edit();
    editor.remove("studentNameColor");
    editor.commit();
    

    //删除defaultSharedPreference中的每个key-value

    sharedPreferencesFDefault.edit().clear().commit();
    

    您还可以使用apply() 代替commit(),后者在后台异步执行操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-19
      • 2015-06-11
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多