所以在下面的代码中,我100%的时间遇到了以else语句结束的问题,即使我的登录参数对于我创建的各种测试帐户都是正确的。
View.OnClickListener loginListener = new View.OnClickListener() {
String usernameVal_login = usernameEditText_login.getText().toString();
String passwordVal_login = passwordEditText_login.getText().toString();
@Override
public void onClick(View view) {
ParseUser.logInInBackground(usernameVal_login, passwordVal_login, new LogInCallback() {
@Override
public void done(ParseUser user, com.parse.ParseException e) {
if (user != null) {
Intent intent = new Intent(WelcomeActivity.this, FunFactsActivity.class);
startActivity(intent);
} else {
Toast.makeText(WelcomeActivity.this, "There was an unexpected error.", Toast.LENGTH_LONG).show();
}
}
});
}
};
当我为登录输入正确的参数时,不知道为什么它没有登录我?
修改
返回错误:
09-09 03:14:43.691 18687-18687/com.example.khaube.funfacts W/System.err﹕ com.parse.ParseException: invalid login credentials
ANSWER
原来这是一个逻辑错误。变量没有被设置为onClick,因为它们在侦听器中但不在方法本身中......愚蠢的我。感谢您的建议,伙伴和女孩们!
答案 0 :(得分:0)
根据日志,您的凭据(用户名/密码)可能有误。
答案 1 :(得分:0)
你试过这种方式吗?我想你太早读了EditText。您在创建侦听器时读取凭据,但在单击登录按钮时则不读取凭据。
@Override
public void onClick(View view) {
String usernameVal_login = usernameEditText_login.getText().toString();
String passwordVal_login = passwordEditText_login.getText().toString();
ParseUser.logInInBackground(usernameVal_login, passwordVal_login, new LogInCallback() {
@Override
public void done(ParseUser user, com.parse.ParseException e) {
if (user != null) {
Intent intent = new Intent(WelcomeActivity.this, FunFactsActivity.class);
startActivity(intent);
} else {
Toast.makeText(WelcomeActivity.this, "There was an unexpected error.", Toast.LENGTH_LONG).show();
}
}
});
}enter code here