Android Sharedpreferences Example

Best way to use your SharedPrefernces is by using your appContext that is accessible to the whole App(Common SharedPrefernce and accessible Everywhere).

Define your SharedPrefernces instance in your Application class with get and set methods as below : (If you have not created the Application class then create one as below, This class is called at the start of your app)

public class Application extends android.app.Application { 
    private static Application _instance; 
    private static SharedPreferences _preferences;

    @Override
    public void onCreate() {
        super.onCreate();
         _instance = this;
    }

    public static Application get() {
        return _instance;
    }

    /**
     * Gets shared preferences.
     *
     * @return the shared preferences
     */
    public static SharedPreferences getSharedPreferences() {
        if (_preferences == null)
            _preferences = PreferenceManager.getDefaultSharedPreferences(_instance);
        return _preferences;
    }


//set methods
    public static void setPreferences(String key, String value) {
        getSharedPreferences().edit().putString(key, value).commit();
    }

    public static void setPreferences(String key, long value) {
        getSharedPreferences().edit().putLong(key, value).commit();
    }

    public static void setPreferences(String key, int value) {
        getSharedPreferences().edit().putInt(key, value).commit();
    }

    public static void setPreferencesBoolean(String key, boolean value) {
        getSharedPreferences().edit().putBoolean(key, value).commit();
    }

    //get methods
    public static String getPrefranceData(String key) {
        return getSharedPreferences().getString(key, "");
    }

    public static int getPrefranceDataInt(String key) {
        return getSharedPreferences().getInt(key, 0);
    }

    public static boolean getPrefranceDataBoolean(String key) {
        return getSharedPreferences().getBoolean(key, false);
    }

    public static long getPrefranceDataLong(String interval) {
        return getSharedPreferences().getLong(interval, 0);
    }
}
Declare the Application class in AndroidManifest.xml file with line android:name=".Application" as shown in below snippet:

<application
            android:name=".Application"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:largeHeap="true"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
Now, How to store key-value:

Application.setPreferences("Key","String_Value");
How to fetch key-value:

String value_string=Application.getPrefranceData("Key");
You can now set-SharedPrefernce key-value and get-SharedPrefernce value from anywhere in the app using public Application class and the static get and set methods

No comments:

Post a Comment

Popular Posts