检索共享首选项值将返回null

时间:2018-05-10 07:05:57

标签: android android-sharedpreferences

我使用共享首选项将字符串值存储在一个活动中,但是当尝试在某个其他活动中检索字符串时,它返回null。

这是我的代码:

活动A:

SharedPreferences preferences = getSharedPreferences("MyPref", Context.MODE_PRIVATE);

SharedPreferences.Editor = preferences.edit();

editor.putString("FirstUserName", strUserName);
editor.commit();

上面的代码显示我正在共享首选项中保存字符串值。

现在,

活动B:

SharedPreferences preferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);

String strUserName = preferences.getString("FirstUserName", null);

上面的代码preferences.getString("FirstUserName", null)返回null。

我不知道问题是什么,我想我已经正确编写了代码。

如果代码中有任何错误,请退回。

提前致谢。

3 个答案:

答案 0 :(得分:2)

  

在你的第二个活动中你写了“MyPrefs”,并在第一个   你写的活动“MyPref”没有“s”

更改 SecondActivity.java

SharedPreferences preferences = getSharedPreferences("MyPref", Context.MODE_PRIVATE);

答案 1 :(得分:1)

在活动A中,您获得"MyPref",但在活动B "MyPrefs"中获得额外的's'。这得到了另一个共享偏好的实例,这就是为什么你得到空值。我建议你在Constants类中声明这些字符串。

答案 2 :(得分:0)

试试这个......

- >对于商店价值:

SharedPreferences sharedPreferences = getSharedPreferences(                 “MyPref”,0);

SharedPreferences.Editor editor = sharedPreferences.edit();                                 editor.putString( “firstUserName”, “USER_NAME”);

editor.commit(); editor.apply();

- >对于Retrive Value:

SharedPreferences sharedPreferences = getSharedPreferences(                 “MyPref”,0);

Log.e(“FirstName”,sharedPreferences.getString(“firstUserName”,“”);