我正在使用此代码来保存字符串:
public class MySharedPref {
private static final String APP_SHARED_PREFS = "TripDetails";
private SharedPreferences appSharedPrefs;
private Editor prefsEditor;
public MySharedPref(Context activity) {
this.appSharedPrefs = activity.getSharedPreferences(APP_SHARED_PREFS,
Activity.MODE_PRIVATE);
this.prefsEditor = appSharedPrefs.edit();
}
public String getPrefsValue(String value) {
return appSharedPrefs.getString(value, "");
}
public void savePrefsValue(String key, String Value) {
prefsEditor.putString(key, Value);
prefsEditor.commit();
}
public String getImei(String value) {
return appSharedPrefs.getString(value, "");
}
public void saveImei(String key, String Value) {
prefsEditor.putString(key, Value);
prefsEditor.commit();
}
public Boolean checkKey(String Key) {
if (appSharedPrefs.contains(Key))
return true;
else
return false;
}
}
并致电:
MySharedPref mySharedPref = new MySharedPref(context);
mySharedPref.saveImei("Imei", Imei);
但在处理程序中。我得到空指针异常。 我没有理由,为什么会这样。请帮助。
logcat的:
java.lang.NullPointerException
09-15 11:46:52.213: W/System.err(17575): at com.example.util.MySharedPref.<init>(MySharedPref.java:14)
09-15 11:46:52.215: W/System.err(17575): at com.example.util.SerialRecieveThread.handleWaitBuffer(SerialThread.java:273)
09-15 11:46:52.216: W/System.err(17575): at com.example.util.SerialRecieveThread.step(SerialThread.java:612)
09-15 11:46:52.219: W/System.err(17575): at com.example.util.SerialRecieveThread.run(SerialThread.java:172)
09-15 11:46:52.220: W/System.err(17575): at java.lang.Thread.run(Thread.java:841)
答案 0 :(得分:1)
使用以下方式
第1步
创建一个Application类
public class MyApplication extends Application{
private static Context context;
public void onCreate(){
super.onCreate();
MyApplication.context = getApplicationContext();
}
public static Context getAppContext() {
return MyApplication.context;
}
}
第2步
在Android Manifest文件中声明如下
<application android:name="com.xyz.MyApplication">
</application>
第3步
MySharedPref mySharedPref = new MySharedPref(MyApplication.getAppContext());
mySharedPref.saveImei("Imei", Imei);