在我的活動類中,我將一些數據存儲在Sharedpreference
中。我的非Activity類擁有getter和setter來讀取Sharedpreference
數據。我想在另一個Activity類中使用這個數據。但是我總是得到一個Nullpointer異常。如何從非活動類中獲取SharedPreference以用於非活動
這是我的Activity類的代碼片段。
SharedPreferences prefs;
prefs = getActivity().getSharedPreferences(KEY_NAME_FOR_PREF, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("name", name.getText().toString());
editor.commit();
這是我的第一個非Activity類
private String name;
private Context mContext;
public PdfConsultantContacts(Context context){
mContext = context;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
這是我的第二個非活動類。 上下文mContext; PdfConsultantContacts contact = new PdfConsultantContacts(mContext);
void initContact() {
SharedPreferences prefs = mContext.getApplicationContext().
getSharedPreferences("app_prefs", 0);
contact.setName(prefs.getString("name", null));
}
當我嘗試contact.getName();
我總是得到一個空指針異常,但我知道SharedPreference
被正確地保存。
默認值爲空......您如何知道首選項已保存? – Navdroid 2015-02-10 09:16:58
嘗試mContext.getSharedPreferences(「app_prefs」,0); – 2015-02-10 09:18:12
可以請你說你在哪裏調用initContact()?在活動或非活動課上? – sUndeep 2015-02-10 09:19:22