首页 > 解决方案 > 无法解析方法“addOnCompleteListener”和“setonclicklistener”

问题描述

在这里,在下面的代码中,方法“addOnCompleteListener”和“setonclicklistener”不起作用。这些以红色显示。所以不允许发布太多代码,所以我在这里写下我使用的所有导入。OnFailureListener、OnSuccessListener、OnCompleteListener、AuthResult、FireBaseAuth.getInstance、Activity等以及基本导入。

    package com.example.myfirstapp;

public class MainActivity extends AppCompatActivity {
    EditText emailId, password;
    Button btnSignUp;
    TextView tvSignIn;
    FireBaseAuth mFireBaseAuth;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mFireBaseAuth = getInstance();
        emailId = findViewById(R.id.editTextTextEmailAddress);
        password = findViewById(R.id.editTextTextPassword);
        btnSignUp = findViewById(R.id.button);
        tvSignIn = findViewById(R.id.textView);
        btnSignUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String email = emailId.getText().toString();
                String pwd = password.getText().toString();
                if (email.isEmpty()) {
                    emailId.setError("Please enter the email id.");
                    emailId.requestFocus();

                } else if (!(email.isEmpty() && pwd.isEmpty())) {
                    mFireBaseAuth.createUserWithEmailAndPassword(email, pwd).addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>()
                    {
                        @Override
                        public void onComplete (Task < AuthResult > task)
                        {
                            if (!task.isSuccessful()) {
                                Toast.makeText( MainActivity.this,
                                        "SignUp Unsuccessful. Please try again.",Toast.LENGTH_SHORT).show();
                            } else {
                                startActivity(new Intent(MainActivity.this, HomeActivity.class));
                            }
                        }
                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {

                        }
                    });
                }
                else
                {
                    Toast.makeText( MainActivity.this,
                            "Error Occurred!",Toast.LENGTH_SHORT).show();
                }

            }
        tvSignIn.setOnClickListener(new View.OnClickListener())
            {
            public void OnClick(View v)
                {
                    Intent i=new Intent(MainActivity.this, LoginActivity.class);
                    startActivity(i);
                }
            }
        });
    }
}



标签: androidandroid-studio

解决方案


问题是您在创建它的对象时拼错了 FirebaseAuth。

public class MainActivity extends AppCompatActivity {
    EditText emailId, password;
    Button btnSignUp;
    TextView tvSignIn;

    // THE PROBLEM IS HERE:
    FireBaseAuth mFireBaseAuth;
    /* It is miscapitalized so it doesnt know what you are talking about. There is no uppercase B in FirebaseAuth */

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

所以而不是

FireBaseAuth mFireBaseAuth;

FirebaseAuth mFirebaseAuth

只是一个简单的错误。当我说我们都这样做时,请相信我!


推荐阅读