我尝试在共享首选项中保存一些字符串然后在那里读取字符串。我写的代码女巫可以在共享偏好中写字符串,但我不能在另一个活动中读取他们的字符串 这是一个写共享首选项代码
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) 我究竟做错了什么 ?如果有人知道解决方案,请帮助我 感谢
答案 0 :(得分:1)
这很有可能失败,因为您在两种情况下都在Activity
上下文而不是Application
上下文中传递。由于每个Activity
都是唯一的,因此PreferenceManager
为两个不同的上下文命名后备SharedPreference
文件的方式不同。使用Application
上下文对象,或使用两个活动使用的共享首选项的自定义名称。
答案 1 :(得分:0)
不要使用:
.getDefaultSharedPreferences(this);
取而代之的是:
.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);