Java Android-从活动到广播接收器获取首选项

Java Android-从活动到广播接收器获取首选项,java,android,broadcastreceiver,android-preferences,Java,Android,Broadcastreceiver,Android Preferences,我正在开发一个Android应用程序,但我有一个问题。当我试图从我的活动中获取保存的首选项并在广播接收器中使用它时,它告诉我我要查找的字符串不存在 以下是我在“活动”中保存首选项的方式: private void SavePreferences(String key, String value) { SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); Sh

我正在开发一个Android应用程序,但我有一个问题。当我试图从我的活动中获取保存的首选项并在
广播接收器中使用它时,它告诉我我要查找的字符串不存在

以下是我在“活动”中保存首选项的方式:

private void SavePreferences(String key, String value) {                         
  SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
  SharedPreferences.Editor editor = sharedPreferences.edit();
  editor.putString(key, value);
  editor.commit();
}
这就是我在
BroadcastReceiver
中获取首选项的方法:

String pref = PreferenceManager.getDefaultSharedPreferences(context)
  .getString("MEM1", "Does not exist");
其中
MEM1
是我之前保存的字符串

我的问题是,当我读取
pref
时,我得到的是
的默认值不存在,而不是我的首选值(
MEM1
)。有人能告诉我哪里出了问题吗?

你应该用

private void SavePreferences(String key, String value){

        SharedPreferences sharedPreferences = getPreferences("my_prefs", MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, value);
        editor.commit();
       }
然后

String pref = getSharedPreferences("my_prefs", MODE_PRIVATE).getString("MEM1", "Does not exist");
还要确保你的钥匙是正确的

Activity.getPreferences(mode);
返回特定于该活动的SharedReferences实例(如中所示,支持它的XML文件将命名为与该活动相同),而默认共享首选项特定于应用程序(XML名称将基于您的包名称)


您可以在每次检索SharedReferences时提供自定义文件名,也可以使用默认文件名。

是否可以在调用
SavePreference()
method?SavePreferences(“MEM1”,ETIdUtente.getText().toString())的位置粘贴一个代码段;就是现在我调用的函数!SharedPreferences SharedPreferences=getPreferences(“我的首选项”,MODE\u PRIVATE);仅接受1整数…:(它给了我类型活动中的getPreferences(int)方法不适用于参数(String,int)错误>:请检查我的编辑..查看我如何更改在接收器中提取信息的行您应该使用上下文。GetSharedReferences(String键,int);在您的接收器中。它工作:D ty!!!!。^顺便说一句,它是SharedReferences SharedReferences=GetSharedReferences(“我的首选项”,模式为私有);ty很多:)我会相应地更新我的答案。没问题=)。很高兴能帮忙。