使用共享首选项创建登录页面



我正在创建一个登录页面。我在这里使用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'。密码相同。这可能是您的代码不起作用的原因。

最新更新