java - NullPointerException at getDefaultSharedPreferences -


i'm creating preferencefragment based on developer guide nullpointerexception @ getdefaultsharedpreferences() call in oncreate() when try restore saved user preferences. inflate preferencefragment xml , set default values too. exception thrown @ getdefaultsharedpreferencesname() within getdefaultsharedpreferences().

here preferencefragment class:

public class settingsfragment extends preferencefragment implements     onsharedpreferencechangelistener {  public static final string key_max_walk_distance_preference = "max_walk_distance_preference"; public static final string key_max_search_time_preference = "max_search_time_preference";  context context = getactivity();  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);      // load preferences xml resource     addpreferencesfromresource(r.xml.preferences);      // load user preferences     sharedpreferences sharedpreferences = preferencemanager             .getdefaultsharedpreferences(context);     if (sharedpreferences != null) {         preference walkdistance = findpreference(key_max_walk_distance_preference);         if (walkdistance != null) {             walkdistance.setsummary(sharedpreferences.getstring(                     key_max_walk_distance_preference, "")                     + getresources().getstring(                             r.string.max_walk_distance_postfix));         }         preference searchtime = findpreference(key_max_search_time_preference);         if (searchtime != null) {             searchtime.setsummary(sharedpreferences.getstring(                     key_max_search_time_preference, "")                     + getresources().getstring(                             r.string.max_search_time_postfix));         }     } }  @override public void onsharedpreferencechanged(sharedpreferences sharedpreferences,         string key) {     if (key.equals(key_max_walk_distance_preference)) {         preference walkdistance = findpreference(key);         // set summary user-description selected value         walkdistance.setsummary(sharedpreferences.getstring(key, "")                 + getresources().getstring(                         r.string.max_walk_distance_postfix));     } else if (key.equals(key_max_search_time_preference)) {         preference searchtime = findpreference(key);         // set summary user-description selected value         searchtime.setsummary(sharedpreferences.getstring(key, "")                 + getresources()                         .getstring(r.string.max_search_time_postfix));     } }  @override public void onresume() {     super.onresume();     getpreferencescreen().getsharedpreferences()             .registeronsharedpreferencechangelistener(this); }  @override public void onpause() {     super.onpause();     getpreferencescreen().getsharedpreferences()             .unregisteronsharedpreferencechangelistener(this); } 

}

here xml:

<?xml version="1.0" encoding="utf-8"?> <preferencescreen xmlns:android="http://schemas.android.com/apk/res/android" >  <edittextpreference     android:dialogtitle="@string/max_walk_distance_dialogtitle"     android:key="max_walk_distance_preference"     android:summary="@string/max_walk_distance_summary"     android:title="@string/max_walk_distance_title"     android:inputtype="number"     android:defaultvalue="500" />  <edittextpreference     android:dialogtitle="@string/max_search_time_dialogtitle"     android:key="max_search_time_preference"     android:summary="@string/max_search_time_summary"     android:title="@string/max_search_time_title"     android:inputtype="number"     android:defaultvalue="10"/>  </preferencescreen> 

context context = getactivity(); 

your fragment not associated activity when object instantiated , getactivity() returns null. hence npe when trying preferences null context.

postpone getactivity() e.g. oncreate() (which called after onattach()).


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -