Code2care : TechZone Apps & Tutorials

Android Shared Preferences API tutorial



If you want to store information/data at the application level then it can be achieved using Shared Preferences. The data that you store using Shared Preferences will persist even after relaunch and reboot.

Note : If the user goes to Setting->Application setting->Application and Clears the data (Clear data option) for you app then all the data stored will be deleted.


How to use SharePreferences



    Data is scored as Key-Value Pairs using SharedPreferences APIs.

    There are two ways (methods) in which you can use SharedPreferences.

    1. getPreferences()

    This method should be used if your application needs only one shared preference file for your activity. This uses a default shared preference file and hence there is no need to specify the file name for it.

    Example :
    SharedPreferences mySharedPreference = getActivity().getPreferences(Context.MODE_PRIVATE);


    2. getSharedPreferences()

    You need have the application Context object in order to access/call shared preferences,

    Example :
    Context context = getActivity();
    SharedPreferences sharedPref = context.getSharedPreferences(
    "com.code2care.sharedPreferences.pref_file_key", Context.MODE_PRIVATE);


    You may use this method if you need more than one shared preference files. getSharedPreferences() signature has two parameters 1st one specifies the shared preference file names and second parameter specify how the file would be accessed. Note that the shared preference file name should uniquely identify your app and must be specified as "com.companyname.appname.pref_file_name"



SharePreferences File Access Modes


You can use the following modes to create or access SharePreferences file,

1. MODE_PRIVATE

    This is a default file creation mode. When this mode is used the fie created can be accessed only by the application that creates it. It has a constant value 0.

    Definition : public static final int MODE_PRIVATE = 0


2. MODE_APPEND

    This file creation mode is used when the file already exists and data is to be written to the existing file at the end of the file.



3. MODE_ENABLE_WRITE_AHEAD_LOGGING

    This is a database open flag, when it is set the database is opened with a write ahead logging enabled mode.



4. MODE_WORLD_READABLE

    This mode is used when you want the file to be readable by all other applications. It has a Constant value 1

    Note : MODE_WORLD_READABLE is deprecated as on API level 17 as it is very dangerous and likely to cause security loop holes in your applications. So it should not be used.



5. MODE_WORLD_WRITEABLE

    This mode is used when you want the file to be writable by all other applications. It has a Constant value 2

    Note : MODE_WORLD_WRITEABLE is deprecated as on API level 17 as it is very dangerous and likely to cause security loop holes in your applications. Its use is strongly discouraged.




Writing to a Shared Preference file



    We have till now seen how we can create a share preference file for your Android application. Now lets see how we can write data to this file.

    In order to write to the shared preference file we need to use Editor Interface. The Editor interface is used to modify contents of a shared preference file.

    Lets see all the methods of Editor Interface.


    1. putBoolean(String key, boolean value)

    This method is used when you want to set a boolean value to a preference editor. This key-value will be written to the SharedPreference once commit() or apply() method is called.

    2. putFloat(String key, float value)

    This method is used when you want to set a float value to a preference editor. This key-value will be written to the SharedPreference once commit() or apply() method is called.

    3. putInt(String key, int value)

    This method is used when you want to set a Int value to a preference editor. This key-value will be written to the SharedPreference once commit() or apply() method is called.

    4. putLong(String key, long value)

    This method is used when you want to set a long value to a preference editor. This key-value will be written to the SharedPreference once commit() or apply() method is called.

    5. putString(String key, String value)

    This method is used when you want to set a String value to a preference editor. This key-value will be written to the SharedPreference once commit() or apply() method is called. Note that setting value as null is same as calling remove(String) with the key specified).

    6. putStringSet(String key, Set values)

    This method is used when you want to set a String Set values to a preference editor. This key-value will be written to the SharedPreference once commit() or apply() method is called. Note that setting value as null is same as calling remove(String) with the key specified).

    7. apply()

    It is used to commit changes that you have made from the Editor back to the SharedPreferences object after being edited. The current value of the SharedPreferences is automatically modified and replaced.

    8. clear()

    If you used this method, it will remove all values from the SharedPreferences.

    9. commit()
    Commits changes from the Editor to the SharedPreference Object. It returns a boolean true value if the commit was successful.



Now lets see how to create a SharedPreferences object and access it using Editor and write a string value back to it.

Example :
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Editor sPrefEditor = sharedPref.edit();
sPrefEditor.putString("message", "Hello there!");
sPrefEditor.commit();


Note : The changes that we make in an editor are batched, and are not copied back to the original SharedPreferences unless commit() or apply() is called.



Reading data from SharePreferences Object



    Till now we have seen how to create a SharePreferences file and write to it. Now lets see how we can access what we write to SharePreferences.

    To read from shared preference object we use getResources() method with getnteger(), getString(), getFloat() e.t.c methods with the key of the value that you want to access.

    Example :
    SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
    String msg = getResources().getString("message");




Example Program



Lets create a application that demonstrates Shared Preferences,

Lets create a Notepad application application that saves a note that you write along with Title, date and time when it was created.


Top











Posts related to android.


1. Share image and text Twitter using your Android Application Programatically

2. The Android Virtual Device 'myEmulator' is currently running an emulator and cannot be deleted.

3. Make Android View Scrollable both Horizontally and Vertically

4. Can we move apps like WhatsApp, Facebook to external MicroSD card

5. Parsing Data for android-21 failed unsupported major.minor version 51.0

6. Android : Prevent App for rotation landscape or portrait

7. ADT quit unexpectedly error on Mac OSX Android Eclipse SDK

8. Android-Failed to install apk on device EOF Timeout Error

9. How to change Android EditText Cursor Color

10. JavaDocs for Android SDK Eclipse IDE

11. Two Buttons next to each other in Android Layout

12. Change Title text for Android Activity using java code

13. How to add Newline to text in Android TextView

14. Android : Unable to load VM from snapshot : Mac OS X Error

15. INVALID FILE NAME: MUST CONTAIN ONLY [a-z0-9_.] Android Eclipse Error

16. Hide Tittle bar and Navigation bar from android activity

17. appcompat_v7 errors after updates to API level 21 Material Theme

18. How to Copy Text to Android Clipboard Programatically ClipboardManager (Both Old and New SDK)

19. [Solution] Running Android Lint has encountered a problem NullPointerException Error

20. Remove Trailing zeros BigDecimal Java

    more...






Popular tags
android
x 175
eclipse
x 29
notepadplusplus
x 20
macosx
x 14
sharepoint
x 14
html
x 14
mac
x 13
androidstudio
x 11




1000+ C Programs     PHP Tutorial     JSON Tutorial     Swift Tutorial     India Pinocdes     About Us     Privacy Policy


Code2care © 2012-17