В классе Activity Я храню некоторые данные в Sharedpreference
. Мой класс non 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();
Это моя первая не класс активности
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();
я получаю всегда исключение NullPointer, но я знаю, что SharedPreference
сохраняются правильно.
Значение по умолчанию равно null ... и откуда вы знаете, что предпочтение сохраняется? – Navdroid
Попробуйте mContext.getSharedPreferences ("app_prefs", 0); –
Можете ли вы сказать, где вы назвали initContact()? В классе активности или неактивности? – sUndeep