use*_*506 4 android parse-platform
我是Android的新手,我被困在一个似乎是一个简单的问题修复,但我只是不知道我做错了什么!我需要做的只是注册一个用户,由于某种原因,e永远不会等于null,因此它会直接进入else部分,这会给我无效的会话令牌消息.这是注册部分的代码,我看了几千次!:
protected EditText mUsername;
protected EditText mPassword;
protected EditText mEmail;
protected Button mSignUpButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up_manager);
mUsername = (EditText)findViewById(R.id.usernameField);
mPassword = (EditText)findViewById(R.id.passwordField);
mEmail = (EditText)findViewById(R.id.emailField);
mSignUpButton = (Button)findViewById(R.id.signupButton);
mSignUpButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = mUsername.getText().toString();
String password = mPassword.getText().toString();
String email = mEmail.getText().toString();
//trims the spaces
username = username.trim();
password = password.trim();
email = email.trim();
//if one of the text edits is empty send them a message with a title with an ok button.
if(username.isEmpty() || password.isEmpty() || email.isEmpty()){
AlertDialog.Builder builder = new AlertDialog.Builder(SignUpManagerActivity.this);
builder.setMessage(R.string.signup_error_message)
.setTitle(R.string.signup_error_title)
.setPositiveButton(android.R.string.ok, null);
AlertDialog dialog = builder.create();
dialog.show();
}
else {
setProgressBarIndeterminateVisibility(true);//the progress circle is active.
//creating a new parse user.
ParseUser pUser = new ParseUser();
pUser.setUsername(username);
pUser.setPassword(password);
pUser.setEmail(email);
pUser.signUpInBackground(new SignUpCallback() {
@Override
public void done(ParseException e) {
setProgressBarIndeterminateVisibility(false);//the progress circle is not active.
if (e == null) {
Intent intent = new Intent(SignUpManagerActivity.this, LoginManagerActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(SignUpManagerActivity.this);
builder.setMessage(e.getMessage())
.setTitle(R.string.signup_error_title)
.setPositiveButton(android.R.string.ok, null);
AlertDialog dialog = builder.create();
dialog.show();
}
}
});
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
请帮助,提前谢谢!
小智 8
第一篇文章,但我有同样的错误.如果我错了,请纠正我,但我相信我的问题是我可以创建一次用户然后获得无效的会话令牌.我认为这是因为即使您可以关闭并重新运行应用程序,Parse网站上的"会话"仍会登录.
通过在我尝试创建新的解析用户之前添加以下代码,我修复了我的问题.
ParseUser currentUser = ParseUser.getCurrentUser();
currentUser.logOut();
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.干杯!