Android: строковое значение не отображается в общих настройках - PullRequest
3 голосов
/ 13 декабря 2010

Я создал общее предпочтение для логического значения и для строкового значения. Логическое значение получено в другом действии. Но для строки я получаю только значение по умолчанию.

Home.class

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor spe = prefs.edit();

    spe.putBoolean("flag", true); 
    spe.putString("user", "hello");
    spe.commit(); 

welcome.class

      SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    boolean flag= prefs.getBoolean("flag", false); 
    String user=prefs.getString("user","Nothing");  

      TextView tv = new TextView(this);
      tv.setText("Flag : "+flag+(" User : "+user);

Для «пользователя» отображается только «Ничего». Где я должен исправить свой код?

1 Ответ

8 голосов
/ 13 декабря 2010

Попробуйте использовать:

SharedPreferences settings = getSharedPreferences(appName,0);
settings.getBoolean("flag", true);  
settings.getString("user", "hello"); 

И поставить:

SharedPreferences settings = getSharedPreferences(appName,0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("flag",true);
editor.putString("user","hello");
editor.commit();

Это то, что я использую в своем приложении, и оно разделяет логические / целые / строковые строки, используемые во многих классах

Примечание. AppName не обязательно должно быть именем приложения, как в официальном руководстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...