我正在创建一个登录页面。我在这里使用SharedPreferences。问题是,当复选框"记住我"被选中时,我总是得到错误的密码。如果不使用共享引用,代码运行良好。有人能给我一个解决方案吗?提前谢谢。
public class UserLoginActivity extends Activity implements View.OnClickListener {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
preference = PreferenceManager.getDefaultSharedPreferences(this);
login = (Button) findViewById(R.id.bLogIn);
username = (EditText) findViewById(R.id.etLoginEmail);
password = (EditText) findViewById(R.id.etPassword);
remember = (CheckBox) findViewById(R.id.chkRemember);
uID = preference.getString("userid", " ");
uPass = preference.getString("pass_word", " ");
username.setText(uID);
password.setText(uPass);
login.setOnClickListener(this);
public void onClick(View v){
switch (v.getId()) {
case R.id.bLogIn:
if(remember.isChecked()){
SharedPreferences.Editor editor = preference.edit();
editor.putString("userid", username.getText().toString().trim());
editor.putString("pass_word", password.getText().toString().trim());
editor.commit();
login();
}else {
login();
}
uID = preference.getString("userid", " ");
uPass = preference.getString("pass_word", " ");
默认情况下,您会返回空格,因此您的登录名和密码总是有空格。存储凭据时,会对其进行修剪,从而删除空间。所以您创建了类似'username '
的帐户,并将其存储为'username'
。密码相同。这可能是您的代码不起作用的原因。