我创建了一个类来将用户密码保存到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();
}
};
});
};
}
答案 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进行空检查。