This question already has answers here:
Difference between getDefaultSharedPreferences and getSharedPreferences
                                
                                    (6个答案)
                                
                        
                2年前关闭。
            
        

我有一个共享的首选项,我想在第一个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”

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

******编辑

给出的重复题答案根本无法解释我做错了什么?

最佳答案

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

在两个地方都使用getDefaultSharedPreferences(getContext()),或者在两个地方都使用带有getSharedPreferences("h20music.p9p.harrop99.h20music")的自己的版本

09-28 09:43