Android无法共享首选项

时间:2014-06-05 14:06:39

标签: android sharedpreferences

我尝试在共享首选项中保存一些字符串然后在那里读取字符串。我写的代码女巫可以在共享偏好中写字符串,但我不能在另一个活动中读取他们的字符串 这是一个写共享首选项代码

    SharedPreferences userDetails = this.getSharedPreferences("userdetails", MODE_PRIVATE);

    SharedPreferences.Editor editor = userDetails.edit();
    editor.putString("facebook_user_name","abc");
    editor.putString("facebook_id","hello");
    editor.commit();

这是另一项活动中的读取共享偏好

SharedPreferences userDetails = this.getSharedPreferences(“userdetails”,MODE_PRIVATE);         String language = userDetails.getString(“facebook_id”,“”);

    Toast.makeText(getApplicationContext(), language, Toast.LENGTH_LONG)

Toast结果为null(nothink) 我究竟做错了什么 ?如果有人知道解决方案,请帮助我 感谢

2 个答案:

答案 0 :(得分:1)

这很有可能失败,因为您在两种情况下都在Activity上下文而不是Application上下文中传递。由于每个Activity都是唯一的,因此PreferenceManager为两个不同的上下文命名后备SharedPreference文件的方式不同。使用Application上下文对象,或使用两个活动使用的共享首选项的自定义名称。

答案 1 :(得分:0)

不要使用:

.getDefaultSharedPreferences(this);

取而代之的是:

.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);