将sharedPreferences用于登录屏幕

时间:2011-07-29 09:21:46

标签: android login sharedpreferences

我创建了一个类来将用户密码保存到sharedPrefences(Password.PASSWORD_PREF_KEY,0)中,该版本工作正常,但我们在登录时的活动是在启动时止赎。我联系了代码,如果有人能告诉我我做错了。

这是代码:

import android.app.Activity;
import android.content.intent;
import android.content.SharedPreferences;
import android.os.Bundle;

import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class LogIn extends Activity {


private EditText pass1;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.password);


SharedPreferences passwdfile = getSharedPreferences(Password.PASSWORD_PREF_KEY,1);
final String p3 = passwdfile.getString(Password.PASSWORD_PREF_KEY, null);
final String p1 = pass1.getText().toString();
Button page1 = (Button) findViewById(R.id.btn_login);
page1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
if (p3.equals(p1)) {
    startActivity(new Intent(LogIn.this,Main.class));  finish();
}
else {
    Toast.makeText(getApplicationContext(),"Incorrect Password",Toast.LENGTH_LONG).show();
}

};
});
};

}

4 个答案:

答案 0 :(得分:0)

您还可以共享logcat日志以获得更好的答案,但是......

快速浏览一下后,我注意到了:

final String p1 = pass1.getText().toString();

在此次通话之前,您似乎无法在任何地方初始化pass1

答案 1 :(得分:0)

final String p3 = passwdfile.getString("name uf the variable/key name","default value you need");
getSharedPreferences("here give the name of shared preference",MODE_PRIVATE);

答案 2 :(得分:0)

startActivity(new Intent(LogIn.this,Main.class)); 

尝试删除finish();

答案 3 :(得分:-1)

我们可以获得异常堆栈,以便找到根本原因吗?我的猜测是应用程序可能出现空指针异常,我建议对p3进行空检查。