我正在尝试使用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", ""));
答案 0 :(得分:1)
您忘了拨打editor.commit()
或editor.apply()