Get Android shared preferences value in activity/normal class

Sandeep picture Sandeep · Sep 21, 2011 · Viewed 106.3k times · Source

I have made a shared preference activity that store the user settings, now i want to get values in a activity or normal java class.please provide a solution or example i have already tried this code but failed.

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    SharedPreferences channel=this.getSharedPreferences(strFile, Context.MODE_PRIVATE);
    strChannel=channel.getString(keyChannel,"Default").toString();
    Toast.makeText(getApplicationContext(), strChannel, Toast.LENGTH_LONG).show();
}                     

in this code strfile for eg. com.android.pack.ClassName is SharedPreference Activity from values to be fetched, and keyChannel is key that is same in SharedPreference Activity.

Kindly provide the solution.

Answer

Umesh picture Umesh · Sep 21, 2011

If you have a SharedPreferenceActivity by which you have saved your values

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String imgSett = prefs.getString(keyChannel, "");

if the value is saved in a SharedPreference in an Activity then this is the correct way to saving it.

SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString(keyChannel, email);
editor.commit();// commit is important here.

and this is how you can retrieve the values.

SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
String channel = (shared.getString(keyChannel, ""));

Also be aware that you can do so in a non-Activity class too but the only condition is that you need to pass the context of the Activity. use this context in to get the SharedPreferences.

mContext.getSharedPreferences(PREF_NAME, MODE_PRIVATE);