Triode
Triode

Reputation: 11359

Issue with shared preference

I am using Android 2.1 sdk and I am trying to save user loggin session in to Shared preferences, the thing is after saving the value to the shared preference I am unable to retrive it. Here I am pasting the code I used to save and fetch value from SharedPrefrence.

public void setValue(String name, String value, String prefName) {
    sharedPref = mContext.getSharedPreferences(prefName, Context.MODE_PRIVATE);
    sharedPref.edit().putString(name, value);
    sharedPref.edit().commit();
}


public String getValue(String name, String prefName) {
    String value = null;
    sharedPref = mContext.getSharedPreferences(prefName, Context.MODE_PRIVATE);
    value = sharedPref.getString(name, value);
    return value;
}

Did i miss some thing in this code, I am not retrieving any exceptions while saving and retrieving the value. Thanks for any help.

Upvotes: 0

Views: 220

Answers (2)

Android
Android

Reputation: 1427

private SharedPreferences myPrefs;
  myPrefs = Actionactivity.this.getSharedPreferences("myPrefs", MODE_WORLD_WRITEABLE);
  SharedPreferences.Editor prefsEditor = myPrefs.edit();
   prefsEditor.putString("Mobile_no", getText_no.getText().toString().trim());
   prefsEditor.commit();


myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
  myPrefs.getString("Mobile_no", "");

try this one code work

Upvotes: 0

user658042
user658042

Reputation:

Every call to edit() returns you a new Editor instance. So you get an instance, make a change and leave it alone. Then you get a second one and commit that without changes, which results in no value changes in the preferences.

Rather chain in the commit():

sharedPref.edit().putString(name, value).commit();

Alternatively break it up into multiple lines with one specific instance:

Editor e = sharedPref.edit();
e.putString(name, value);
e.commit();

Upvotes: 3

Related Questions