If you have a relatively small collection of key-values that you'd like to save,
you should use the
SharedPreferences object points to a file containing
key-value pairs and provides simple methods to read and write them. Each
SharedPreferences file is
managed by the framework and can be private or shared.
This class shows you how to use the
SharedPreferences APIs to store and
retrieve simple values.
SharedPreferences APIs are
only for reading and writing key-value pairs and you should not confuse them with the
Preference APIs, which help you build a user interface
for your app settings (although they use
SharedPreferences as their
implementation to save the app settings). For information about using the
Preference APIs, see the Settings guide.
Get a Handle to a SharedPreferences
You can create a new shared preference file or access an existing one by calling one of two methods:
getSharedPreferences()— Use this if you need multiple shared preference files identified by name, which you specify with the first parameter. You can call this from any
Contextin your app.
getPreferences()— Use this from an
Activityif you need to use only one shared preference file for the activity. Because this retrieves a default shared preference file that belongs to the activity, you don't need to supply a name.
For example, the following code is executed inside a
It accesses the shared preferences file that's
identified by the resource string
R.string.preference_file_key and opens it using
the private mode so the file is accessible by only your app.
Context context = getActivity(); SharedPreferences sharedPref = context.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE);
When naming your shared preference files, you should use a name that's uniquely identifiable
to your app, such as
Alternatively, if you need just one shared preference file for your activity, you can use the
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Write to Shared Preferences
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit();
Read from Shared Preferences
To retrieve values from a shared preferences file, call methods such as
getString(), providing the key for the value
you want, and optionally a default value to return if the key isn't
present. For example:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.string.saved_high_score_default); long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);