我正在尝试在AlertDialog.Builder的builder.setPositiveButton方法中放置一些代码.
问题是我收到以下错误:无法解析方法’addOnCompletionListener(匿名android.content.DialogInterface.OnClickListener,匿名com.google.android.gms.tasks.OnCompletionListener< com.google.firebase.auth.AuthResult> )
这是代码:
AlertDialog.Builder builder = new AlertDialog.Builder(SignUpActivity.this);
builder.setTitle("Title");
builder.setView(R.layout.customlayout);
builder.setPositiveButton("Continue",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface,int i) {
//error from below line
mAuth.createuserWithEmailAndPassword(userEmail.getText().toString(),userPassword.getText().toString())
.addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d("signUpSuccessful","createuserWithEmail:onComplete:" + task.isSuccessful());
// If sign in fails,display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Snackbar snackbar = Snackbar
.make(coordinatorLayout,"Sign up Failed. Please retry.",Snackbar.LENGTH_SHORT);
snackbar.show();
}
// ...
}
});
//upto this line
}
});
AlertDialog dialog = builder.create();
dialog.show();
这有什么不对?
请告诉我.
解决方法
addOnCompleteListener(this,new OnCompleteListener<AuthResult>()
这行中的“this”表示你的DialogInterface.OnClickListener,你应该检查这个方法需要什么样的params,如果是Context,试着把它改成这个
addOnCompleteListener(YourActivityName.this,new OnCompleteListener<AuthResult>()