开发者

Using sharedPreferences for a login screen

I made a class to save the users password into a sharedPrefences(Password.PA开发者_StackOverflow中文版SSWORD_PREF_KEY,0) which works perfectly but my ctivity that they login with is foreclosing on startup. I linked the code if anyone can tell meat i did wrong.

Here is code:

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();
}

};
});
};

}


You could also share a logcat log for better answers but...

After a quick glance I noticed:

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

you don't seem to initialize pass1 anywhere prior to this call.


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);


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

Try to remove finish();


Can we get the exception stack so we can find the root cause? My guess is that the app may occurred a null pointer exception, I suggest that to have a null check on p3.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜