在 SharedPreferences 中存储值
Storing Values in 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", ""));
您忘记拨打 editor.commit()
或 editor.apply()
我正在尝试使用 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", ""));
您忘记拨打 editor.commit()
或 editor.apply()