Сохранить данные пользователя с помощью SharedPreferences

1

Я пишу приложение для сохранения пароля с помощью интерфейса входа в систему. Пользователь может изменить пароль для входа. В первый раз я использую следующий код для сохранения пароля, так что пароль не будет сброшен при перезагрузке приложения:

@Override
public void onSaveInstanceState(Bundle savedInstanceState){
    savedInstanceState.putString("pwd", currentPwd);
    super.onSaveInstanceState(savedInstanceState);
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
    currentPwd = savedInstanceState.getString("pwd");
}

Но после того, как я спросил об этом, кто-то на этом веб-сайте предложил мне использовать "SharedPreferences". Итак, я изменил код следующим образом:

@Override public void onCreate(Bundle savedInstanceState) {     
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);
    SharedPreferences settings = getSharedPreferences("setting", 0);
    currentPwd = settings.getString("pwd", "abc");
}

@Override public void onStop(){
    super.onStop();
    SharedPreferences settings = getSharedPreferences("setting", 0);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString("pwd", currentPwd);
    editor.commit();
} 

После моего эксперимента я обнаружил, что пароль будет сброшен через один час, который будет таким же, как и первый код. Я изменил это неправильно для второго кода? Или есть какой-нибудь предложенный способ его решения? Спасибо.

Теги:
sharedpreferences

2 ответа

2
Лучший ответ

Не уверен, что я следую вашему коду, но вот как я это сделаю:

Чтобы получить пароль:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.getString("pwd", "abc");

Чтобы установить пароль:

SharedPreferences.Editor editor = sp.edit();
editor.putString("pwd", currentPwd);
editor.commit();

надеюсь, это поможет

  • 0
    Это работа сейчас. Спасибо.
0

Вы можете сохранить значение, используя следующую функцию. Он содержит только контекст, ключ и значение:

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();
    }

Чтобы больше узнать об этом ответе

Ещё вопросы

Сообщество Overcoder
Наверх
Меню