Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:无法将上下文转换为执行器_Java_Android_Android Studio_Android Fragments - Fatal编程技术网

Java 错误:无法将上下文转换为执行器

Java 错误:无法将上下文转换为执行器,java,android,android-studio,android-fragments,Java,Android,Android Studio,Android Fragments,我有两个片段使用相同的活动。单击按钮时,它们会在按钮之间切换。我在片段中使用Google的Firebase身份验证,但它在signInWithEmailAndPassword方法中给了我一个错误,它不接受我的上下文参数 // Define the context private Context mContext; public LoginFragment() { } @Override public void onAttach(Context context) { super.on

我有两个片段使用相同的活动。单击按钮时,它们会在按钮之间切换。我在片段中使用Google的Firebase身份验证,但它在signInWithEmailAndPassword方法中给了我一个错误,它不接受我的上下文参数

// Define the context
private Context mContext;

public LoginFragment() {

}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    this.mContext = context;
}
这是登录方法

// logs the user in
private void loginUser() {

    // Get the text for email and password
    String email = loginEmail.getText().toString();
    String password = loginPassword.getText().toString();

    // Sign the user in
    mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(mContext, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {

            // TODO: Figure out how to give back certain messages
            // If the task fails
            if(!task.isSuccessful()){
                Log.i(TAG, "Username/Passowrd Combination dont match");
            }
        }
    });

}
//让用户登录
私有void登录用户(){
//获取电子邮件和密码的文本
字符串email=loginEmail.getText().toString();
字符串密码=loginPassword.getText().toString();
//让用户登录
mAuth.使用email和password(电子邮件,密码)登录。在完全解决不了我的问题之前添加OnCompleteListener(mContext,新建OnCompleteListener)。我仍然会收到错误。我的应用甚至不会启动


它正在将mContext设置为适当的活动,但使用Email和Password进行登录。addOnCompleteListener不接受上下文,这就是错误所在

更改
addOnCompleteListener
以使用此片段正在使用的活动
getActivity()

//让用户登录
mAuth.使用电子邮件和密码登录(电子邮件,密码)
.addOnCompleteListener(getActivity(),new OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
//TODO:了解如何返回某些消息
//如果任务失败
如果(!task.issusccessful()){
Log.i(标记“Username/Passowrd组合不匹配”);
}
}
});

然后,您可以删除所有
mContext
字段和
onAttach
覆盖更改
addOnCompleteListener
以使用此片段所在的活动
getActivity()

//让用户登录
mAuth.使用电子邮件和密码登录(电子邮件,密码)
.addOnCompleteListener(getActivity(),new OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
//TODO:了解如何返回某些消息
//如果任务失败
如果(!task.issusccessful()){
Log.i(标记“Username/Passowrd组合不匹配”);
}
}
});

然后,您可以删除所有
mContext
字段和
onAttach
override

而不是传递上下文,尝试传递“YourActivity”。这个“而不是传递上下文,尝试传递”YourActivity。这个“我想我试过了..我想我没有。谢谢我想我试过..我想我没有。谢谢
Error:(115, 66) error: no suitable method found for addOnCompleteListener(Context,<anonymous OnCompleteListener<AuthResult>>)
method Task.addOnCompleteListener(Executor,OnCompleteListener<AuthResult>) is not applicable
(argument mismatch; Context cannot be converted to Executor)
method Task.addOnCompleteListener(Activity,OnCompleteListener<AuthResult>) is not applicable
(argument mismatch; Context cannot be converted to Activity)
// Sign the user in
mAuth.signInWithEmailAndPassword(email, password)
   .addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {

        // TODO: Figure out how to give back certain messages
        // If the task fails
        if(!task.isSuccessful()){
            Log.i(TAG, "Username/Passowrd Combination dont match");
        }
    }
});