2012-03-23 3 views
0

Я использую Android 2.1 sdk, и я пытаюсь сохранить сеанс пользователя loggin в разделе «Общие предпочтения». Дело в том, что после сохранения значения для общего предпочтения я не могу его извлечь. Здесь я вставляю код, который я использовал для сохранения и получения значения из 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; 
} 

ли я пропустить некоторые вещи в этом коде, я не получение каких-либо исключений при сохранении и извлечении значения. Спасибо за любую помощь.

ответ

3

Каждый звонок edit() возвращает вам новый экземпляр Editor. Итак, вы получаете экземпляр, вносите изменения и оставляете его в покое. Затем вы получаете второй и фиксируете это без изменений, что не приводит к изменению значений в настройках.

Вместо цепи в commit():

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

В качестве альтернативы разбить его на несколько строк с одним конкретным экземпляром:

Editor e = sharedPref.edit(); 
e.putString(name, value); 
e.commit(); 
0
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", ""); 

попробовать этот один код работает

Смежные вопросы