Search code examples
androidandroid-fragmentssharedpreferences

Android SharedPreferences in Fragment


I am trying to read SharedPreferences inside Fragment. My code is what I use to get preferences in any other Activity.

     SharedPreferences preferences = getSharedPreferences("pref", 0);

I get error

    Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper    

I have tried to follow these links but with no luck Accessing SharedPreferences through static methods and Static SharedPreferences. Thank you for any solution.


Solution

  • The method getSharedPreferences is a method of the Context object, so just calling getSharedPreferences from a Fragment will not work...because it is not a Context! (Activity is an extension of Context, so we can call getSharedPreferences from it).

    So you have to get your applications Context by

    // this = your fragment
    SharedPreferences preferences = this.getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);