我已经整合了Parse注册&登录我的应用程序。
我已成功注册但当我退出后再次注销时,我收到了ParseException
:com.parse.ParseRequest$ParseRequestException: invalid login parameters
。
这是LoginWithEmail.java
文件的代码:
public class LoginWithEmail extends AppCompatActivity {
EditText mUsername;
EditText mPassword;
public String name, email, userID;
Intent profileIntent;
ParseUser user;
String login_username;
String login_password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_with_email);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mUsername = (EditText) findViewById(R.id.userNameEmail);
login_username = mUsername.getText().toString();
mPassword = (EditText) findViewById(R.id.userPasswordEmail);
login_password = mPassword.getText().toString();
findViewById(R.id.email_login_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
loginWithEmail();
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private void loginWithEmail() {
ParseUser.logInInBackground(login_username, login_password, new LogInCallback() {
public void done(ParseUser user, ParseException e) {
if (user != null) {
// Hooray! The user is logged in.
Log.d(login_username, login_username+"success");
profileIntent = new Intent(LoginWithEmail.this, ProfileActivity.class);
startActivity(profileIntent);
} else {
// Signup failed. Look at the ParseException to see what happened.
Log.d("error signingup email", e.toString());
Log.d(login_username, login_username+"error", e);
Log.d(login_password, login_password+"error", e);
AlertDialog.Builder builder = new AlertDialog.Builder(LoginWithEmail.this);
builder.setTitle("");
builder.setMessage(e.getMessage());
builder.setPositiveButton(android.R.string.ok, null);
}
}
});
}
}
这是ProfileActivity.java
文件的代码(我要退出的地方):
public class ProfileActivity extends AppCompatActivity {
CircleImageView mProfileImage;
Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Bundle bundle = getIntent().getExtras();
mProfileImage = (CircleImageView) findViewById(R.id.user_profile_image);
TextView mUsername = (TextView) findViewById(R.id.userName);
TextView mEmailID = (TextView) findViewById(R.id.aboutUser);
byte[] byteArray = getIntent().getByteArrayExtra("user_pic");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
mProfileImage.setImageBitmap(bmp);
mUsername.setText(bundle.getString("userName"));
mEmailID.setText(bundle.getString("userEmail"));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_profile, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_logout) {
ParseUser.logOut();
navigateToLogin();
}
return super.onOptionsItemSelected(item);
}
private void navigateToLogin() {
Intent intent = new Intent(this, SignUpScreen.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
请告诉我这里出了什么问题!
答案 0 :(得分:0)
你的问题是onCreate()方法中的这些行:
login_username = mUsername.getText().toString();
login_password = mPassword.getText().toString();
将这些行移到此处:
findViewById(R.id.email_login_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
loginWithEmail();
}
});
像这样:
findViewById(R.id.email_login_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
login_username = mUsername.getText().toString();
login_password = mPassword.getText().toString();
loginWithEmail();
}
});