By Muhammad Maqsoodur Rehman


2010-09-02 06:26:52 8 Comments

I want to store a time value and need to retrieve and edit it. How can I use SharedPreferences to do this?

30 comments

@Muhammad Hassan 2018-03-14 21:31:13

To store values in shared preferences:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sp.edit();
editor.putString("Name","Jayesh");
editor.commit();

To retrieve values from shared preferences:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
String name = sp.getString("Name", ""); // Second parameter is the default value.

@Joshua Pinter 2018-05-12 15:08:28

Nice and clean, thanks!

@Syed Danish Haider 2018-05-08 05:06:28

2.for Storing in shared prefrence

SharedPreferences.Editor editor = 
getSharedPreferences("DeviceToken",MODE_PRIVATE).edit();
                    editor.putString("DeviceTokenkey","ABABABABABABABB12345");
editor.apply();

2.for retrieving the same use

    SharedPreferences prefs = getSharedPreferences("DeviceToken", 
 MODE_PRIVATE);
  String deviceToken = prefs.getString("DeviceTokenkey", null);

@Vishal 05 2018-01-30 06:40:36

SharedPreferences.Editor editor = getSharedPreferences("identifier", 
MODE_PRIVATE).edit();
//identifier is the unique to fetch data from your SharedPreference.


editor.putInt("keyword", 0); 
// saved value place with 0.
//use this "keyword" to fetch saved value again.
editor.commit();//important line without this line your value is not stored in preference   

// fetch the stored data using ....

SharedPreferences prefs = getSharedPreferences("identifier", MODE_PRIVATE); 
// here both identifier will same

int fetchvalue = prefs.getInt("keyword", 0);
// here keyword will same as used above.
// 0 is default value when you nothing save in preference that time fetch value is 0.

you need to use SharedPreferences in AdapterClass or any other. that time just use this declaration and use same ass above.

SharedPreferences.Editor editor = context.getSharedPreferences("idetifier", 
Context.MODE_PRIVATE).edit();
SharedPreferences prefs = context.getSharedPreferences("identifier", Context.MODE_PRIVATE);

//here context is your application context

for string or boolean value

editor.putString("stringkeyword", "your string"); 
editor.putBoolean("booleankeyword","your boolean value");
editor.commit();

fetch data same as above

String fetchvalue = prefs.getString("keyword", "");
Boolean fetchvalue = prefs.getBoolean("keyword", "");

@Sohaib Aslam 2017-12-17 12:21:16

Use used this example simple and clear and checked

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >

      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >

         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>

      </activity>

   </application>
</manifest>
public class MainActivity extends AppCompatActivity {
   EditText ed1,ed2,ed3;
   Button b1;

   public static final String MyPREFERENCES = "MyPrefs" ;
   public static final String Name = "nameKey";
   public static final String Phone = "phoneKey";
   public static final String Email = "emailKey";

   SharedPreferences sharedpreferences;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      ed3=(EditText)findViewById(R.id.editText3);

      b1=(Button)findViewById(R.id.button);
      sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String n  = ed1.getText().toString();
            String ph  = ed2.getText().toString();
            String e  = ed3.getText().toString();

            SharedPreferences.Editor editor = sharedpreferences.edit();

            editor.putString(Name, n);
            editor.putString(Phone, ph);
            editor.putString(Email, e);
            editor.commit();
            Toast.makeText(MainActivity.this,"Thanks",Toast.LENGTH_LONG).show();
         }
      });
   }

}

@fidazik 2014-03-14 11:51:46

To store information

SharedPreferences preferences = getSharedPreferences(PREFS_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("username", username.getText().toString());
editor.putString("password", password.getText().toString());
editor.putString("logged", "logged");
editor.commit();

To reset your preferences

SharedPreferences.Editor editor = preferences.edit();
editor.clear();
editor.commit();

@Sathish 2013-05-22 06:33:57

In any application, there are default preferences that can accessed through the PreferenceManager instance and its related method getDefaultSharedPreferences(Context) .

With the SharedPreference instance one can retrieve the int value of the any preference with the getInt(String key, int defVal). The preference we are interested in this case is counter .

In our case, we can modify the SharedPreference instance in our case using the edit() and use the putInt(String key, int newVal) We increased the count for our application that presist beyond the application and displayed accordingly.

To further demo this, restart and you application again, you will notice that the count will increase each time you restart the application.

PreferencesDemo.java

Code:

package org.example.preferences;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;

public class PreferencesDemo extends Activity {
   /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Get the app's shared preferences
        SharedPreferences app_preferences = 
        PreferenceManager.getDefaultSharedPreferences(this);

        // Get the value for the run counter
        int counter = app_preferences.getInt("counter", 0);

        // Update the TextView
        TextView text = (TextView) findViewById(R.id.text);
        text.setText("This app has been started " + counter + " times.");

        // Increment the counter
        SharedPreferences.Editor editor = app_preferences.edit();
        editor.putInt("counter", ++counter);
        editor.commit(); // Very important
    }
}

main.xml

Code:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/text"  
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="@string/hello" />
</LinearLayout>

@java dev 2013-02-21 09:58:29

editor.putString("text", mSaved.getText().toString());

Here, mSaved can be any TextView or EditText from where we can extract a string. you can simply specify a string. Here text will be the key which hold the value obtained from the mSaved (TextView or EditText).

SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);

Also there is no need to save the preference file using the package name i.e., "com.example.app". You can mention your own preferred name. Hope this helps !

@DeRagan 2010-09-02 06:32:39

To edit data from sharedpreference

 SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
 editor.putString("text", mSaved.getText().toString());
 editor.putInt("selection-start", mSaved.getSelectionStart());
 editor.putInt("selection-end", mSaved.getSelectionEnd());
 editor.apply();

To retrieve data from sharedpreference

SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
String restoredText = prefs.getString("text", null);
if (restoredText != null) 
{
  //mSaved.setText(restoredText, TextView.BufferType.EDITABLE);
  int selectionStart = prefs.getInt("selection-start", -1);
  int selectionEnd = prefs.getInt("selection-end", -1);
  /*if (selectionStart != -1 && selectionEnd != -1)
  {
     mSaved.setSelection(selectionStart, selectionEnd);
  }*/
}

Edit

I took this snippet from API Demo sample. It had an EditText box there . In this context it is not required.I am commenting the same .

@Key 2010-09-02 06:35:40

+1, but use getPreferences(MODE_PRIVATE); instead of getPreferences(0); for readability.

@Muhammad Maqsoodur Rehman 2010-09-02 06:36:44

What is mSaved here? I need to save 2 string values.

@karlstackoverflow 2012-06-05 00:19:51

I would also like to know what mSaved is. Nvm i think its the editbox

@amr osama 2014-07-17 09:51:58

what -1 means in getInt ??

@DeRagan 2014-07-17 18:43:24

Thats the default value going to be returned if the key(selection-start) doesn't exist in sharedpreferences.It can be anything and is just for your reference.

@Ruchir Baronia 2016-03-01 02:59:02

Hey, I have a question on Shared Preferences. Do you mind answering it? stackoverflow.com/questions/35713822/…

@Ali Esa Assadi 2018-12-06 21:21:35

Use github.com/AliEsaAssadi/Android-Power-Preference to simplify the implementation

@Magesh Pandian 2016-11-06 06:08:36

Singleton Shared Preferences Class. it may help for others in future.

  import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;

public class SharedPref
{
    private static SharedPreferences mSharedPref;
    public static final String NAME = "NAME";
    public static final String AGE = "AGE";
    public static final String IS_SELECT = "IS_SELECT";

    private SharedPref()
    {

    }

    public static void init(Context context)
    {
        if(mSharedPref == null)
            mSharedPref = context.getSharedPreferences(context.getPackageName(), Activity.MODE_PRIVATE);
    }

    public static String read(String key, String defValue) {
        return mSharedPref.getString(key, defValue);
    }

    public static void write(String key, String value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putString(key, value);
        prefsEditor.commit();
    }

    public static boolean read(String key, boolean defValue) {
        return mSharedPref.getBoolean(key, defValue);
    }

    public static void write(String key, boolean value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putBoolean(key, value);
        prefsEditor.commit();
    }

    public static Integer read(String key, int defValue) {
        return mSharedPref.getInt(key, defValue);
    }

    public static void write(String key, Integer value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putInt(key, value).commit();
    }
}

Simply call SharedPref.init() on MainActivity once

SharedPref.init(getApplicationContext());

To Write data

SharedPref.write(SharedPref.NAME, "XXXX");//save string in shared preference.
SharedPref.write(SharedPref.AGE, 25);//save int in shared preference.
SharedPref.write(SharedPref.IS_SELECT, true);//save boolean in shared preference.

To Read Data

String name = SharedPref.read(SharedPref.NAME, null);//read string in shared preference.
int age = SharedPref.read(SharedPref.AGE, 0);//read int in shared preference.
boolean isSelect = SharedPref.read(SharedPref.IS_SELECT, false);//read boolean in shared preference.

@Jayesh 2017-11-20 12:04:43

To store values in shared preferences:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sp.edit();
editor.putString("Name","Jayesh");
editor.commit();

To retrieve values from shared preferences:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
String name = sp.getString("Name", "");

@ArcDare 2012-01-13 10:09:14

Easiest way:

To save:

getPreferences(MODE_PRIVATE).edit().putString("Name of variable",value).commit();

To retrieve:

your_variable = getPreferences(MODE_PRIVATE).getString("Name of variable",default value);

@Gaʀʀʏ 2012-05-02 22:36:50

I tried this between activities and it did not work. Does package structure need to be included in var name?

@Sindri Þór 2016-01-26 14:57:39

Send it with intent

@Lucian Novac 2017-07-05 06:40:10

To use this structure between activities replace getPreferences(MODE_PRIVATE) with PreferenceManager.getDefaultSharedPreferences(your ativity)

@Faxriddin Abdullayev 2017-06-19 12:10:28

Edit

SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("yourValue", value);
editor.commit();

Read

SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
value= pref.getString("yourValue", "");

@Zohaib Hassan 2017-05-07 20:57:08

I have created a Helper class to make my Life easy. This is a generic class and has a-lot of methods those are commonly used in Apps like Shared Preferences, Email Validity, Date Time Format. Copy this class in your code and access it's methods wherever you need.

 import android.app.AlertDialog;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.SharedPreferences;
 import android.support.v4.app.FragmentActivity;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.Toast;

 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Random;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;

/**
* Created by Zohaib Hassan on 3/4/2016.
*/
 public class Helper {

private static ProgressDialog pd;

public static void saveData(String key, String value, Context context) {
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    SharedPreferences.Editor editor;
    editor = sp.edit();
    editor.putString(key, value);
    editor.commit();
}

public static void deleteData(String key, Context context){
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    SharedPreferences.Editor editor;
    editor = sp.edit();
    editor.remove(key);
    editor.commit();

}

public static String getSaveData(String key, Context context) {
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    String data = sp.getString(key, "");
    return data;

}




public static long dateToUnix(String dt, String format) {
    SimpleDateFormat formatter;
    Date date = null;
    long unixtime;
    formatter = new SimpleDateFormat(format);
    try {
        date = formatter.parse(dt);
    } catch (Exception ex) {

        ex.printStackTrace();
    }
    unixtime = date.getTime();
    return unixtime;

}

public static String getData(long unixTime, String formate) {

    long unixSeconds = unixTime;
    Date date = new Date(unixSeconds);
    SimpleDateFormat sdf = new SimpleDateFormat(formate);
    String formattedDate = sdf.format(date);
    return formattedDate;
}

public static String getFormattedDate(String date, String currentFormat,
                                      String desiredFormat) {
    return getData(dateToUnix(date, currentFormat), desiredFormat);
}




public static double distance(double lat1, double lon1, double lat2,
                              double lon2, char unit) {
    double theta = lon1 - lon2;
    double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2))
            + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))
            * Math.cos(deg2rad(theta));
    dist = Math.acos(dist);
    dist = rad2deg(dist);
    dist = dist * 60 * 1.1515;
    if (unit == 'K') {
        dist = dist * 1.609344;
    } else if (unit == 'N') {
        dist = dist * 0.8684;
    }
    return (dist);
}

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :: This function converts decimal degrees to radians : */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
private static double deg2rad(double deg) {
    return (deg * Math.PI / 180.0);
}

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :: This function converts radians to decimal degrees : */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
private static double rad2deg(double rad) {
    return (rad * 180.0 / Math.PI);
}

public static int getRendNumber() {
    Random r = new Random();
    return r.nextInt(360);
}

public static void hideKeyboard(Context context, EditText editText) {
    InputMethodManager imm = (InputMethodManager) context
            .getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}

public static void showLoder(Context context, String message) {
    pd = new ProgressDialog(context);

    pd.setCancelable(false);
    pd.setMessage(message);
    pd.show();
}

public static void showLoderImage(Context context, String message) {
    pd = new ProgressDialog(context);
    pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    pd.setCancelable(false);
    pd.setMessage(message);
    pd.show();
}

public static void dismissLoder() {
    pd.dismiss();
}

public static void toast(Context context, String text) {

    Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
/*
     public static Boolean connection(Context context) {
    ConnectionDetector connection = new ConnectionDetector(context);
    if (!connection.isConnectingToInternet()) {

        Helper.showAlert(context, "No Internet access...!");
        //Helper.toast(context, "No internet access..!");
        return false;
    } else
        return true;
}*/

public static void removeMapFrgment(FragmentActivity fa, int id) {

    android.support.v4.app.Fragment fragment;
    android.support.v4.app.FragmentManager fm;
    android.support.v4.app.FragmentTransaction ft;
    fm = fa.getSupportFragmentManager();
    fragment = fm.findFragmentById(id);
    ft = fa.getSupportFragmentManager().beginTransaction();
    ft.remove(fragment);
    ft.commit();

}

public static AlertDialog showDialog(Context context, String message) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setMessage(message);

    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int id) {
            // TODO Auto-generated method stub

        }
    });

    return builder.create();
}

public static void showAlert(Context context, String message) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("Alert");
    builder.setMessage(message)
            .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.dismiss();
                }
            }).show();
}

public static boolean isURL(String url) {
    if (url == null)
        return false;

    boolean foundMatch = false;
    try {
        Pattern regex = Pattern
                .compile(
                        "\\b(?:(https?|ftp|file)://|www\\.)?[-A-Z0-9+&#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]\\.[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]",
                        Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
        Matcher regexMatcher = regex.matcher(url);
        foundMatch = regexMatcher.matches();
        return foundMatch;
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
        return false;
    }
}

public static boolean atLeastOneChr(String string) {
    if (string == null)
        return false;

    boolean foundMatch = false;
    try {
        Pattern regex = Pattern.compile("[a-zA-Z0-9]",
                Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
        Matcher regexMatcher = regex.matcher(string);
        foundMatch = regexMatcher.matches();
        return foundMatch;
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
        return false;
    }
}

public static boolean isValidEmail(String email, Context context) {
    String expression = "^[\\w\\.-][email protected]([\\w\\-]+\\.)+[A-Z]{2,4}$";
    CharSequence inputStr = email;
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        return true;
    } else {
        // Helper.toast(context, "Email is not valid..!");

        return false;
    }
}

public static boolean isValidUserName(String email, Context context) {
    String expression = "^[0-9a-zA-Z]+$";
    CharSequence inputStr = email;
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        return true;
    } else {
        Helper.toast(context, "Username is not valid..!");
        return false;
    }
}

public static boolean isValidDateSlash(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

public static boolean isValidDateDash(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

public static boolean isValidDateDot(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd.mm.yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

}

@Mete 2016-12-23 13:31:36

I write a helper class for sharedpreferences:

import android.content.Context;
import android.content.SharedPreferences;

/**
 * Created by mete_ on 23.12.2016.
 */
public class HelperSharedPref {

Context mContext;

public HelperSharedPref(Context mContext) {
    this.mContext = mContext;
}

/**
 *
 * @param key Constant RC
 * @param value Only String, Integer, Long, Float, Boolean types
 */
public void saveToSharedPref(String key, Object value) throws Exception {
    SharedPreferences.Editor editor = mContext.getSharedPreferences(key, Context.MODE_PRIVATE).edit();
    if (value instanceof String) {
        editor.putString(key, (String) value);
    } else if (value instanceof Integer) {
        editor.putInt(key, (Integer) value);
    } else if (value instanceof Long) {
        editor.putLong(key, (Long) value);
    } else if (value instanceof Float) {
        editor.putFloat(key, (Float) value);
    } else if (value instanceof Boolean) {
        editor.putBoolean(key, (Boolean) value);
    } else {
        throw new Exception("Unacceptable object type");
    }

    editor.commit();
}

/**
 * Return String
 * @param key
 * @return null default is null
 */
public String loadStringFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    String restoredText = prefs.getString(key, null);

    return restoredText;
}

/**
 * Return int
 * @param key
 * @return null default is -1
 */
public Integer loadIntegerFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Integer restoredText = prefs.getInt(key, -1);

    return restoredText;
}

/**
 * Return float
 * @param key
 * @return null default is -1
 */
public Float loadFloatFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Float restoredText = prefs.getFloat(key, -1);

    return restoredText;
}

/**
 * Return long
 * @param key
 * @return null default is -1
 */
public Long loadLongFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Long restoredText = prefs.getLong(key, -1);

    return restoredText;
}

/**
 * Return boolean
 * @param key
 * @return null default is false
 */
public Boolean loadBooleanFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Boolean restoredText = prefs.getBoolean(key, false);

    return restoredText;
}

}

@naikus 2010-09-02 06:42:15

To obtain shared preferences, use the following method In your activity:

SharedPreferences prefs = this.getSharedPreferences(
      "com.example.app", Context.MODE_PRIVATE);

To read preferences:

String dateTimeKey = "com.example.app.datetime";

// use a default value using new Date()
long l = prefs.getLong(dateTimeKey, new Date().getTime()); 

To edit and save preferences

Date dt = getSomeDate();
prefs.edit().putLong(dateTimeKey, dt.getTime()).apply();

The android sdk's sample directory contains an example of retrieving and storing shared preferences. Its located in the:

<android-sdk-home>/samples/android-<platformversion>/ApiDemos directory

Edit==>

I noticed, it is important to write difference between commit() and apply() here as well.

commit() return true if value saved successfully otherwise false. It save values to SharedPreferences synchronously.

apply() was added in 2.3 and doesn't return any value either on success or failure. It saves values to SharedPreferences immediately but starts an asynchronous commit. More detail is here.

@Muhammad Maqsoodur Rehman 2010-09-02 07:09:40

So the next time user runs my app, the stored value is there already and i can fetch it...right?

@naikus 2010-09-02 07:40:43

Yes you can fetch it.

@IgorGanapolsky 2012-04-11 16:40:31

What do you mean: prefs.getLong(dateTimeKey, new Date().getTime()); What is new Date().getTime()? What is it's significance? Did you choose that arbitrarily??

@Mike Speed 2013-01-15 19:20:44

(To anyone reading the above) Yes it is arbitrary. This example just saves the current date as a preference with the key "com.example.app.datetime".

@Si8 2013-07-29 19:14:50

this.getSharedPreferences gives me the following error: The method getSharedPreferences(String, int) is undefined for the type MyActivity

@UpLate 2013-07-31 21:04:03

SharedPreferences.Editor.apply() was introduced in Gingerbread in November, 2010 (after this answer was posted). Use it instead of commit() where possible since apply() is more efficient.

@Lennart Rolland 2014-12-31 07:05:35

Editor.apply() requires API level 9 or above. below that use Editor.commit()

@reegan29 2015-05-05 07:50:14

bro just think a Relative Layout.I put the a Map image on the Relative Layout.I have a pin image as a ImageView.I successfully add the dynamic ImageView(pin image) on the Relative Layout(Map).I want to store the Relative Layout with pin mark images in my app local folder and retrieve the same Relative Layout with pin mark image.I think to store sqlite.Is this possible with shared preference? My thought is right or wrong ...Please give any idea to store the layout with Image...

@Mohini 2015-07-02 09:58:27

SharedPreferences data deleted or not when app's background process is cleared ? I am using for login process but when my app's background process cleared and after that open app user need to enter login details.

@Álisson Morais 2015-07-13 19:11:00

To get more references see: SharedPreferences Google's Docs

@Ruchir Baronia 2016-03-01 02:58:23

Hey, I have a question on Shared Preferences. Do you mind answering it? stackoverflow.com/questions/35713822/…

@DAVIDBALAS1 2016-08-12 18:53:39

If I am calling getInt() before setInt(), will it cause an error or return 0?

@Jeremy 2017-01-17 10:25:52

@DAVIDBALAS1 getInt(String key, int defValue) will return the previously set value for key or defValue if no value for key was set.

@Himanshu arora 2017-09-17 16:07:58

Here is the complete example working fine easybook4u.com/blog/index.php/2017/09/17/…

@Ali Esa Assadi 2018-12-06 21:20:10

Use github.com/AliEsaAssadi/Android-Power-Preference to simplify the implementation

@frans eilering 2016-07-02 13:28:16

To store and retrieve global variables in a function way. To test, make sure you have Textview items on your page, uncomment the two lines in the code and run. Then comment the two lines again, and run.
Here the id of the TextView is username and password.

In every Class where you want to use it, add these two routines at the end. I would like this routine to be global routines, but do not know how. This works.

The variabels are available everywhere. It stores the variables in "MyFile". You may change it your way.

You call it using

 storeSession("username","frans");
 storeSession("password","!2#4%");***

the variable username will be filled with "frans" and the password with "!2#4%". Even after a restart they are available.

and you retrieve it using

 password.setText(getSession(("password")));
 usernames.setText(getSession(("username")));

below the entire code of my grid.java

    package nl.yentel.yenteldb2;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.Snackbar;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;

    public class Grid extends AppCompatActivity {
    private TextView usernames;
    private TextView password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_grid);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

      ***//  storeSession("username","[email protected]");
        //storeSession("password","mijn wachtwoord");***
        password = (TextView) findViewById(R.id.password);
        password.setText(getSession(("password")));
        usernames=(TextView) findViewById(R.id.username);
        usernames.setText(getSession(("username")));
    }

    public void storeSession(String key, String waarde) { 
        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyFile", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(key, waarde);
        editor.commit();
    }

    public String getSession(String key) {
//http://androidexample.com/Android_SharedPreferences_Basics/index.php?view=article_discription&aid=126&aaid=146
        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyFile", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        String output = pref.getString(key, null);
        return output;
    }

    }

below you find the textview items

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="usernames"
    android:id="@+id/username"
    android:layout_below="@+id/textView"
    android:layout_alignParentStart="true"
    android:layout_marginTop="39dp"
    android:hint="hier komt de username" />

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="password"
    android:id="@+id/password"
    android:layout_below="@+id/user"
    android:layout_alignParentStart="true"
    android:hint="hier komt het wachtwoord" />

@Manokar 2016-06-08 14:24:37

Here i have created an Helper class to use preferences in android.

This is the helper class:

public class PrefsUtil {

public static SharedPreferences getPreference() {
    return PreferenceManager.getDefaultSharedPreferences(Applicatoin.getAppContext());
}

public static void putBoolean(String key, boolean value) {
    getPreference().edit().putBoolean(key, value)
            .apply();
}

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

public static void putInt(String key, int value) {

    getPreference().edit().putInt(key, value).apply();

}

public static void delKey(String key) {

    getPreference().edit().remove(key).apply();

}

}

@Hiren Patel 2015-11-25 11:55:29

Best practice ever

Create Interface named with PreferenceManager:

// Interface to save values in shared preferences and also for retrieve values from shared preferences
public interface PreferenceManager {

    SharedPreferences getPreferences();
    Editor editPreferences();

    void setString(String key, String value);
    String getString(String key);

    void setBoolean(String key, boolean value);
    boolean getBoolean(String key);

    void setInteger(String key, int value);
    int getInteger(String key);

    void setFloat(String key, float value);
    float getFloat(String key);

}

How to use with Activity / Fragment:

public class HomeActivity extends AppCompatActivity implements PreferenceManager{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout_activity_home);
    }

    @Override
    public SharedPreferences getPreferences(){
        return getSharedPreferences("SP_TITLE", Context.MODE_PRIVATE);
    }

    @Override
    public SharedPreferences.Editor editPreferences(){
        return getPreferences().edit();
    }

    @Override
    public void setString(String key, String value) {
        editPreferences().putString(key, value).commit();
    }

    @Override
    public String getString(String key) {
        return getPreferences().getString(key, "");
    }

    @Override
    public void setBoolean(String key, boolean value) {
        editPreferences().putBoolean(key, value).commit();
    }

    @Override
    public boolean getBoolean(String key) {
        return  getPreferences().getBoolean(key, false);
    }

    @Override
    public void setInteger(String key, int value) {
        editPreferences().putInt(key, value).commit();
    }

    @Override
    public int getInteger(String key) {
        return getPreferences().getInt(key, 0);
    }

    @Override
    public void setFloat(String key, float value) {
        editPreferences().putFloat(key, value).commit();
    }

    @Override
    public float getFloat(String key) {
        return getPreferences().getFloat(key, 0);
    }
}

Note: Replace your key of SharedPreference with SP_TITLE.

Examples:

Store string in shareperence:

setString("my_key", "my_value");

Get string from shareperence:

String strValue = getString("my_key");

Hope this will help you.

@Ruchir Baronia 2016-02-06 17:52:21

Do I use the same shared preference object to store everything, or do I create new shared pref objects for each different piece of data?

@Hiren Patel 2016-02-06 18:05:27

@Ruchir Baronia, no need to create different objects, by the way you do not need to initialize object of shared preferences. You can save by above way. Let me know if anything required from my side.

@Ruchir Baronia 2016-02-06 18:06:42

Okay, thanks. Can you help me with this? stackoverflow.com/questions/35235759/…

@Hiren Patel 2016-02-06 18:10:39

@Ruchir Baronia, you can cancel thread. Hope this helps you.

@Ruchir Baronia 2016-02-06 18:13:05

Oh, I'm so sorry, I put the wrong question.I meant to ask about this, its about shared preferences :) stackoverflow.com/questions/35244256/issue-with-if-statement‌​/…

@Hiren Patel 2016-02-06 18:18:20

@Ruchir Baronia, use apply() and let me know if anything required and if not working than please check shared preferences title.

@Ruchir Baronia 2016-02-06 18:19:32

Okay, I used apply but it stil isn't working. What do you mean by the tiltle?

@Hiren Patel 2016-02-06 18:21:40

@Ruchir Baronia, forgot everything and use my code for store and retrieve boolean from shared preferences, it would work.

@Ruchir Baronia 2016-02-06 18:22:43

Your code is doing the same thing that mine is, except it is organized into more methods. Why isn't mine working?

@Hiren Patel 2016-02-06 18:26:38

@Ruchir Baronia, apply() will return boolean, check that boolean value.

@Ruchir Baronia 2016-03-01 02:59:56

Hey, I have a question on Shared Preferences. Do you mind answering it? stackoverflow.com/questions/35713822/…

@Ronnie 2016-04-08 03:33:34

commit() will return a value, apply will not return anything as it is writing to preferences Asynchronously. if you want a confirmation of the save use commit(); I know this is a couple months old.

@MBH 2016-06-21 08:48:45

NOT Best practice ever! so in every activity that will use shared preferences we should do the same stuff ? check this please gist.github.com/iballan/896ad96bc4a3dfd151c3

@Hiren Patel 2016-06-21 09:02:07

@MBH, if you are save 100 objects in sharedpreference than you need to create 100 methods for saving and 100 functions for getting value, instead of it this would best practice.

@MBH 2016-06-21 09:04:12

if I would save 100 objects, sharedPreferences is not good place to do so. The thing i did not find it useful, implementing your PreferenceManager will add tons of functions for each activity without even start coding

@BENN1TH 2017-02-05 07:19:19

This work really well. Thanks as I have tried a few different techniques to read/write preferences across my app..and this one worked the best for my situation. +1

@AndroidMechanic - Viral Patel 2016-02-05 19:43:44

Simple and hassle-free :: "Android-SharedPreferences-Helper" library

Better late than never: I created the "Android-SharedPreferences-Helper" library to help reduce the complexity and effort of using SharedPreferences. It also provides some extended functionality. Few things that it offers are as follows:

  • One line initialization and setup
  • Easily selecting whether to use default preferences or a custom preference file
  • Predefined (data type defaults) and customizable (what you may choose) default values for each datatype
  • Ability to set different default value for single use with just an additional param
  • You can register and unregister OnSharedPreferenceChangeListener as you do for default class
dependencies {
    ...
    ...
    compile(group: 'com.viralypatel.sharedpreferenceshelper', name: 'library', version: '1.1.0', ext: 'aar')
}

Declaration of SharedPreferencesHelper object: (recommended at class level)

SharedPreferencesHelper sph; 

Instantiation of the SharedPreferencesHelper object: (recommended in onCreate() method)

// use one of the following ways to instantiate
sph = new SharedPreferencesHelper(this); //this will use default shared preferences
sph = new SharedPreferencesHelper(this, "myappprefs"); // this will create a named shared preference file
sph = new SharedPreferencesHelper(this, "myappprefs", 0); // this will allow you to specify a mode

Putting values into shared preferences

Fairly simple! Unlike the default way (when using the SharedPreferences class) you'll NOT need to call .edit() and .commit() ever time.

sph.putBoolean("boolKey", true);
sph.putInt("intKey", 123);
sph.putString("stringKey", "string value");
sph.putLong("longKey", 456876451);
sph.putFloat("floatKey", 1.51f);

// putStringSet is supported only for android versions above HONEYCOMB
Set name = new HashSet();
name.add("Viral");
name.add("Patel");
sph.putStringSet("name", name);

That's it! Your values are stored in the shared preferences.

Getting values from shared preferences

Again, just one simple method call with the key name.

sph.getBoolean("boolKey");
sph.getInt("intKey");
sph.getString("stringKey");
sph.getLong("longKey");
sph.getFloat("floatKey");

// getStringSet is supported only for android versions above HONEYCOMB
sph.getStringSet("name");

It has a lot of other extended functionality

Check the details of extended functionality, usage and installation instructions etc on the GitHub Repository Page.

@Ruchir Baronia 2016-02-06 17:52:29

Do I use the same shared preference object to store everything, or do I create new shared pref objects for each different piece of data?

@AndroidMechanic - Viral Patel 2016-02-06 17:53:39

You should use the same as much as possible. That's the whole point of making this library.

@Ruchir Baronia 2016-03-01 03:00:28

Hey, I have a question on Shared Preferences. Do you mind answering it? stackoverflow.com/questions/35713822/…

@Jorgesys 2015-08-10 20:07:15

Setting values in Preference:

// MY_PREFS_NAME - a static String variable like: 
//public static final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("name", "Elena");
 editor.putInt("idName", 12);
 editor.commit();

Retrieve data from preference:

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
  String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
  int idName = prefs.getInt("idName", 0); //0 is the default value.
}

more info:

Using Shared Preferences

Shared Preferences

@Martin Erlic 2016-11-19 16:03:19

What is MyPrefsFile? The xml of the preference activity?

@Md. Sajedul Karim 2015-07-31 05:51:48

You can save value using this method:

public void savePreferencesForReasonCode(Context context,
    String key, String value) {
    SharedPreferences sharedPreferences = PreferenceManager
    .getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.commit();
    }

And using this method you can get value from SharedPreferences:

public String getPreferences(Context context, String prefKey) {
  SharedPreferences sharedPreferences = PreferenceManager
 .getDefaultSharedPreferences(context);
 return sharedPreferences.getString(prefKey, "");
}

Here prefKey is the key that you used to saved the specific value. Thanks.

@Yousha Aleayoub 2016-03-26 09:27:51

What about booleans?

@Md. Sajedul Karim 2016-03-26 17:18:13

save using this line : editor.putString(key, value); get using this line : Boolean yourLocked = prefs.getBoolean("locked", false);

@Harneet Kaur 2012-06-14 06:14:07

To store values in shared preferences:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name","Harneet");
editor.apply();

To retrieve values from shared preferences:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name", "");
if(!name.equalsIgnoreCase(""))
{
    name = name + "  Sethi";  /* Edit the value here*/
}

@Dick Lucas 2014-09-01 15:03:12

I like this answer the best because it uses getDefaultSharedPreferences. For most users this will simplify things because the same preferences can be accessed throughout the entire app and you don't have to worry about naming your preferences file. More on that here: stackoverflow.com/a/6310080/1839500

@Android Dev 2016-12-22 15:38:31

I concur... I found this after pulling my hair out trying to figure out why I couldn't access my shared prefs from another activity using the method in the accepted answer. Thanks so much!

@Dmitry 2018-08-19 01:40:05

How can I use it to save and load Map<DateTime, Integer>?

@Ali Esa Assadi 2018-12-06 21:21:43

Use github.com/AliEsaAssadi/Android-Power-Preference to simplify the implementation

@Ravi Parsania 2014-10-21 10:16:40

Store in SharedPreferences

SharedPreferences preferences = getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString("name", name);
editor.commit();

Fetch in SharedPreferences

SharedPreferences preferences=getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
String name=preferences.getString("name",null);

Note: "temp" is sharedpreferences name and "name" is input value. if value does't exit then return null

@Maria Gheorghe 2015-05-02 06:17:12

Very good and easy to use .But here is Context.MODE_PRIVATE not getApplicationContext().MODE_PRIVATE

@Akhil 2014-09-17 13:09:04

There are many ways people recommend how to use SharedPreferences. I have made a demo project here. Key point in sample is to use ApplicationContext & single sharedpreferences object. This demonstrates how to use SharedPreferences with following features:-

  • Using singelton class to access/update SharedPreferences
  • No need to pass context always for read/write SharedPreferences
  • It uses apply() instead of commit()
  • apply() is asynchronus save, doesn't return anything, it update value in memory first & changes are written to disk later asynchronusly.
  • commit() is synchronus save, it return true/false based on outcome. Changes are written to disk synchronusly
  • works on android 2.3+ versions

Usage example as below:-

MyAppPreference.getInstance().setSampleStringKey("some_value");
String value= MyAppPreference.getInstance().getSampleStringKey();

Get source code here & Detailed API's can be found here on developer.android.com

@Akhil 2016-02-06 18:11:11

You can use same.

@Ruchir Baronia 2016-03-01 02:59:43

Hey, I have a question on Shared Preferences. Do you mind answering it? stackoverflow.com/questions/35713822/…

@Nadir Belhaj 2014-09-17 13:00:27

to save

PreferenceManager.getDefaultSharedPreferences(this).edit().putString("VarName","your value").apply();

to retreive :

String name = PreferenceManager.getDefaultSharedPreferences(this).getString("VarName","defaultValue");

default value is : Values to return if this preference does not exist.

you can change "this" with getActivity() or getApplicationContext() in some cases

@Ruchir Baronia 2016-03-01 02:59:32

Hey, I have a question on Shared Preferences. Do you mind answering it? stackoverflow.com/questions/35713822/…

@Ruchir Baronia 2016-03-02 00:48:45

Yes, I did... :)

@Sandeep 2014-09-09 03:34:48

I wanted to add here that most of the snippets for this question will have something like MODE_PRIVATE when using SharedPreferences. Well, MODE_PRIVATE means that whatever you write into this shared preference can only be read by your application only.

Whatever key you pass to getSharedPreferences() method, android creates a file with that name and stores the preference data into it. Also remember that getSharedPreferences() is supposed to be used when you intend to have multiple preference files for your application. If you intend to use single preference file and store all key-value pairs into it then use the getSharedPreference() method. Its weird why everyone (including myself) simply uses getSharedPreferences() flavor without even understanding the difference between the above two.

The following video tutorial should help https://www.youtube.com/watch?v=2PcAQ1NBy98

@kakarott 2014-08-20 14:42:06

Basic idea of SharedPreferences is to store things on XML file.

  1. Declare your xml file path.(if you don't have this file, Android will create it. If you have this file, Android will access it.)

    SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
    
  2. Write value to Shared Preferences

    prefs.edit().putLong("preference_file_key", 1010101).apply();
    

    the preference_file_key is the name of shared preference files. And the 1010101 is the value you need to store.

    apply() at last is to save the changes. If you get error from apply(), change it to commit(). So this alternative sentence is

    prefs.edit().putLong("preference_file_key", 1010101).commit();
    
  3. Read from Shared Preferences

    SharedPreferences sp = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
    long lsp = sp.getLong("preference_file_key", -1);
    

    lsp will be -1 if preference_file_key has no value. If 'preference_file_key' has a value, it will return the value of this.

The whole code for writing is

    SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);    // Declare xml file
    prefs.edit().putLong("preference_file_key", 1010101).apply();    // Write the value to key.

The code for reading is

    SharedPreferences sf = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);    // Declare xml file
    long lsp = sp.getLong("preference_file_key", -1);    // Read the key and store in lsp

@Lennart Rolland 2014-12-31 07:05:58

Editor.apply() requires API level 9 or above. below that use Editor.commit()

@stackoverflow 2013-05-15 13:16:59

To Write :

SharedPreferences preferences = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Authentication_Id",userid.getText().toString());
editor.putString("Authentication_Password",password.getText().toString());
editor.putString("Authentication_Status","true");
editor.apply();

To Read :

SharedPreferences prfs = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_PRIVATE);
String Astatus = prfs.getString("Authentication_Status", "");

@Christopher Smit 2018-05-20 18:42:41

MODE_WORLD_WRITEABLE is deprecated.

@alexm 2014-07-09 15:56:16

If you are making a large application with other developers in your team and intend to have everything well organized without scattered code or different SharedPreferences instances, you may do something like this:

//SharedPreferences manager class
public class SharedPrefs {

    //SharedPreferences file name
    private static String SHARED_PREFS_FILE_NAME = "my_app_shared_prefs";

    //here you can centralize all your shared prefs keys
    public static String KEY_MY_SHARED_BOOLEAN = "my_shared_boolean";
    public static String KEY_MY_SHARED_FOO = "my_shared_foo";

    //get the SharedPreferences object instance
    //create SharedPreferences file if not present


    private static SharedPreferences getPrefs(Context context) {
        return context.getSharedPreferences(SHARED_PREFS_FILE_NAME, Context.MODE_PRIVATE);
    }

    //Save Booleans
    public static void savePref(Context context, String key, boolean value) {
        getPrefs(context).edit().putBoolean(key, value).commit();       
    }

    //Get Booleans
    public static boolean getBoolean(Context context, String key) {
        return getPrefs(context).getBoolean(key, false);
    }

    //Get Booleans if not found return a predefined default value
    public static boolean getBoolean(Context context, String key, boolean defaultValue) {
        return getPrefs(context).getBoolean(key, defaultValue);
    }

    //Strings
    public static void save(Context context, String key, String value) {
        getPrefs(context).edit().putString(key, value).commit();
    }

    public static String getString(Context context, String key) {
        return getPrefs(context).getString(key, "");
    }

    public static String getString(Context context, String key, String defaultValue) {
        return getPrefs(context).getString(key, defaultValue);
    }

    //Integers
    public static void save(Context context, String key, int value) {
        getPrefs(context).edit().putInt(key, value).commit();
    }

    public static int getInt(Context context, String key) {
        return getPrefs(context).getInt(key, 0);
    }

    public static int getInt(Context context, String key, int defaultValue) {
        return getPrefs(context).getInt(key, defaultValue);
    }

    //Floats
    public static void save(Context context, String key, float value) {
        getPrefs(context).edit().putFloat(key, value).commit();
    }

    public static float getFloat(Context context, String key) {
        return getPrefs(context).getFloat(key, 0);
    }

    public static float getFloat(Context context, String key, float defaultValue) {
        return getPrefs(context).getFloat(key, defaultValue);
    }

    //Longs
    public static void save(Context context, String key, long value) {
        getPrefs(context).edit().putLong(key, value).commit();
    }

    public static long getLong(Context context, String key) {
        return getPrefs(context).getLong(key, 0);
    }

    public static long getLong(Context context, String key, long defaultValue) {
        return getPrefs(context).getLong(key, defaultValue);
    }

    //StringSets
    public static void save(Context context, String key, Set<String> value) {
        getPrefs(context).edit().putStringSet(key, value).commit();
    }

    public static Set<String> getStringSet(Context context, String key) {
        return getPrefs(context).getStringSet(key, null);
    }

    public static Set<String> getStringSet(Context context, String key, Set<String> defaultValue) {
        return getPrefs(context).getStringSet(key, defaultValue);
    }
}

In your activity you may save SharedPreferences this way

//saving a boolean into prefs
SharedPrefs.savePref(this, SharedPrefs.KEY_MY_SHARED_BOOLEAN, booleanVar);

and you may retrieve your SharedPreferences this way

//getting a boolean from prefs
booleanVar = SharedPrefs.getBoolean(this, SharedPrefs.KEY_MY_SHARED_BOOLEAN);

@kc ochibili 2014-05-09 03:42:58

Using this simple library, here is how you make the calls to SharedPreferences..

TinyDB tinydb = new TinyDB(context);

tinydb.putInt("clickCount", 2);

tinydb.putString("userName", "john");
tinydb.putBoolean("isUserMale", true); 

tinydb.putList("MyUsers", mUsersArray);
tinydb.putImagePNG("DropBox/WorkImages", "MeAtlunch.png", lunchBitmap);

//These plus the corresponding get methods are all Included

Related Questions

Sponsored Content

87 Answered Questions

[SOLVED] Close/hide the Android Soft Keyboard

22 Answered Questions

[SOLVED] Deleting shared preferences

47 Answered Questions

[SOLVED] Stop EditText from gaining focus at Activity startup

16 Answered Questions

[SOLVED] How Android SharedPreferences save/store object

77 Answered Questions

6 Answered Questions

19 Answered Questions

[SOLVED] How do I create a transparent Activity on Android?

37 Answered Questions

[SOLVED] Get screen dimensions in pixels

30 Answered Questions

[SOLVED] How do I obtain crash-data from my Android application?

35 Answered Questions

[SOLVED] Get current time and date on Android

  • 2011-03-20 16:12:25
  • M7M
  • 1203290 View
  • 958 Score
  • 35 Answer
  • Tags:   android date time

Sponsored Content