在SharedPreferences中存储值

时间:2015-04-26 03:44:55

标签: android sharedpreferences

我正在尝试使用SharedPreferences存储用户名和密码字段的值,并使用这些值来填充EditText字段。字段没有填充,我不确定我做错了什么。

这是我按下登录按钮时调用的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()中,我有这段代码用SharedPreferences值填充EditText字段。

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

1 个答案:

答案 0 :(得分:1)

您忘了拨打editor.commit()editor.apply()