【问题标题】:Shared pref not working [duplicate]共享首选项不起作用[重复]
【发布时间】:2018-01-25 01:45:21
【问题描述】:

我有一个共享首选项,我想在我的第一个 Activity 上保存来自 editText 的字符串。然后在我的第二个活动中调用并使用这个字符串。所以在我的主要活动中,我有这行代码来保存字符串

 SharedPreferences.Editor prefEditor = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit();
                prefEditor.putString("SEARCHSAVE",search);
                prefEditor.apply();

然后在我的第二个活动中,我有这段代码可以调用它

  SharedPreferences prefs = this.getSharedPreferences(
            "h20music.p9p.harrop99.h20music", Context.MODE_PRIVATE);
    myStrValue = prefs.getString("SEARCHSAVE", "defaultStringIfNothingFound");

但如果我检查字符串是否已保存,它会返回“defaultStringIfNothingFound”

请问我做错了什么?提前致谢。这是我第一次使用保存字符串。

******编辑

给出的重复问题答案根本没有解释我做错了什么?

【问题讨论】:

  • 这个answer 到您问题的链接“原始”解释了getDefaultSharedPreferences() 是如何实现的。可以看到他们使用了一个特殊的密钥(由包名和“_preferences”构建)。所以答案意味着密钥很重要。您使用不同的键“做错了”。 IMO您的问题可以通过将答案应用于其他问题来解决。这就是为什么 - 对我来说 - 你的问题是“重复的”。
  • 但如果这个“原版”不行 - that one 怎么样?

标签: java android string sharedpreferences


【解决方案1】:

您没有使用相同的共享首选项。

要么在两个地方都使用getDefaultSharedPreferences(getContext()),要么在两个地方都使用你自己的版本和getSharedPreferences("h20music.p9p.harrop99.h20music")

【讨论】:

    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多