Android onStart如果点击按钮
问题描述:
如果在我的onStart()上点击一个按钮以检查点击的按钮是注册还是登录,我该如何放置if else语句?Android onStart如果点击按钮
这里是我的代码
public void onClick(View v) {
switch (v.getId()) {
case R.id.register:
i = new Intent(this, RegisterCustomer.class);
startActivity(i);
finish();
break;
case R.id.login:
final String email = memail.getText().toString();
final String password = mpassword.getText().toString();
mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(CustomerLoginActivty.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
Toast.makeText(CustomerLoginActivty.this, "sign in error", Toast.LENGTH_SHORT).show();
}
}
});
break;
}
}
@Override
protected void onStart() {
super.onStart();
mAuth.addAuthStateListener(firebaseAuthListener);
}
答
- 类创建一个域。例如int clickedButton;
-
在onStart()检查使用该字段的ID。
int clickedButton; public void onClick(View v) { clickedButton = v.getId(); switch (v.getId()) { case R.id.register: i = new Intent(this, RegisterCustomer.class); startActivity(i); finish(); break; case R.id.login: final String email = memail.getText().toString(); final String password = mpassword.getText().toString(); mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(CustomerLoginActivty.this, new OnCompleteListener <AuthResult>() {@Override public void onComplete(@NonNull Task <AuthResult> task) { if (!task.isSuccessful()) { Toast.makeText(CustomerLoginActivty.this, "sign in error", Toast.LENGTH_SHORT).show(); } } }); break; } } @Override protected void onStart() { super.onStart(); if(clickedButton != null){ switch (clickedButton) { case R.id.register: //do your thing case R.id.login: //do your thing } } mAuth.addAuthStateListener(firebaseAuthListener); }
你想达到什么样的? –
尝试在我的onStart()上放一个if if来检查正在单击的按钮。可能吗? – osoda
'onStart()'已经被调用。你能不能在你的'onClick()'中放置'mAuth.addAuthStateListener(firebaseAuthListener);'? – codeMagic