Android пытается сохранить данные с помощью настроек, не работает - PullRequest
2 голосов
/ 04 мая 2011

Я пытаюсь узнать, как использовать SharedPferences для сохранения данных.

В приведенном ниже тестовом коде getString не возвращает значение вместо «ted», но я не могу понять, почему.

public void onCreate(Bundle savedInstanceState) {

    SharedPreferences pre=getPreferences(MODE_PRIVATE);
    pre.edit().putString("label","ted");
    pre.edit().commit();

    String tr;
    tr=pre.getString("label","no value");

Ответы [ 3 ]

4 голосов
/ 28 августа 2012

конечно оба ответа верны, но решение dmon гораздо проще и короче:)

достаточно переписать ваш код следующим образом:

public void onCreate(Bundle savedInstanceState) {

SharedPreferences pre=getPreferences(MODE_PRIVATE);
pre.edit().putString("label","ted").commit();

String tr=pre.getString("label","no value");
2 голосов
/ 04 мая 2011

Easy, edit() создает редактор. Вы вкладываете ценность в одно, а делаете в другое. Просто сохраните возвращаемое значение edit() в переменной Editor и вызовите commit() в этом.

2 голосов
/ 04 мая 2011

Может быть потому, что вы повторно вызываете функцию edit()? попробуйте это:

public void onCreate(Bundle savedInstanceState) {

    SharedPreferences pre=getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor ed = pre.edit();

    ed.putString("label","ted");
    ed.commit();

    String tr;
    tr=pre.getString("label","no value");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...