2015-04-26 2 views
0

Я пытаюсь сохранить значения полей имени пользователя и пароля с помощью SharedPreferences и использовать эти значения для заполнения полей EditText. Поля не заполняются, и я не уверен, что я делаю неправильно.Сохранение значений в SharedPreferences

Вот мой метод login(), который вызывается при нажатии кнопки входа в систему. В нем я устанавливаю значения SharedPreferences, если вход успешно завершен, и установлен флажок.

public void login() { 
     mLoginProgress.setVisibility(View.VISIBLE); 
     String userNameString = mEmail.getText().toString(); 
     String passwordString = mPassword.getText().toString(); 
     ParseUser.logInInBackground(userNameString, passwordString, new LogInCallback() { 
      @Override 
      public void done(ParseUser parseUser, ParseException e) { 
       if (parseUser != null) { 
        // Login Successful 
        if (mSaveLogin.isChecked() == true) { 
         SharedPreferences preferences = getSharedPreferences("login", MODE_PRIVATE); 
         SharedPreferences.Editor editor = preferences.edit(); 
         editor.putString("userName", mEmail.getText().toString()); 
         editor.putString("password", mPassword.getText().toString()); 
        } 
        mLoginProgress.setVisibility(View.GONE); 
        Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
        LoginActivity.this.startActivity(intent); 
       } 
       else { 
        // Login Failed 
        mLoginProgress.setVisibility(View.GONE); 
        String exception = e.getMessage().toString(); 
        Toast.makeText(getApplicationContext(), exception, Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 
    } 

В OnCreate() У меня есть этот код, чтобы заполнить поля EditText со значениями SharedPreferences.

SharedPreferences pref = getSharedPreferences("login", MODE_PRIVATE); 
mEmail.setText(pref.getString("userName", "")); 
mPassword.setText(pref.getString("password", "")); 
+1

Пожалуйста, не храните пароль. Храните соленый хеш и сравнивайте сохраненное значение с засоленным хешем ввода пользователя. –

ответ

1

Вы забыли позвонить editor.commit() или editor.apply()

+0

Конечно. Благодаря! – raginggoat

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