[英]unable to read data form sharedpreference variable
共享首选项的创建如下:
edt = sp.edit();
edt.putString("token_value", pojo.getKey());
edt.commit();
我想在另一个这样的类中使用此值:
String key = sp.getString("token_value", "");
在这一点上,我得到这样的错误:
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String android.content.SharedPreferences.getString(java.lang.String, java.lang.String)' on a null object reference
请给我您的宝贵建议,并在此先感谢...
在检索首选项之前,是否已初始化sp
对象?
SharedPreferences sp = yourActivity.getPreferences(Context.MODE_PRIVATE);
String key = sp.getString("token_value", "");
该异常清楚地表明您的sp
变量是空引用,并且没有指向任何对象。
之所以出现此错误,是因为在获取值时传递了null。 更改为
String key = sp.getString("token_value", null);
这样,您将获得价值。
您的SharedPreferences
变量sp
已声明但未初始化。 将此添加到您的代码:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
String key = sp.getString("token_value","");
在SharedPreferences
保存变量
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
// make sure pojo.getKey() return value not null prefer make check here
//if(pojo.getKey() != null)
editor.putString("token_value",pojo.getKey());
editor.apply();
检索任何您想要的地方
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("token_value", "");
做你想做的事
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.