【问题标题】:Error: MainActivity is not abstract and does not override abstract method onClick(View) in OnClickListener错误:MainActivity 不是抽象的,并且不会覆盖 OnClickListener 中的抽象方法 onClick(View)
【发布时间】:2020-01-10 23:31:15
【问题描述】:

我需要帮助解决一个问题。这可能很容易,但我不知道该怎么做!
我的错误:

错误:MainActivity 不是抽象的,并且不会覆盖抽象 OnClickListener 中的 onClick(View) 方法

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button btRegister;
    ImageView circle1;
    TextView tvLogin;
    Button login;
    EditText mEmail,mPassword;
    FirebaseAuth fAuth;


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

        btRegister = findViewById(R.id.btRegister);
        tvLogin = findViewById(R.id.tvLogin);
        circle1 = findViewById(R.id.circle1);
        login = findViewById(R.id.btLogin);
        mEmail = findViewById(R.id.etUsername);
        mPassword = findViewById(R.id.etPassword);

      //  if(fAuth.getCurrentUser() != null){
      //      startActivity(new Intent(getApplicationContext(),Startseite.class));
      //      finish();
      //  }

       // btRegister.setOnClickListener(this);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String email = mEmail.getText().toString().trim();
                String password = mPassword.getText().toString().trim();

                if (TextUtils.isEmpty(email)) {
                    mEmail.setError("Benutzername is Required.");
                    return;
                }

                if (TextUtils.isEmpty(password)) {
                    mPassword.setError("Password is Required.");
                    return;
                }



                // authenticate the user

                fAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            Toast.makeText(MainActivity.this, "Logged in Successfully", Toast.LENGTH_SHORT).show();
                            startActivity(new Intent(getApplicationContext(), MainActivity.class));
                        } else {
                            Toast.makeText(MainActivity.this, "Error ! " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();

                        }

                    }
                });

            }
        });
    }



}

【问题讨论】:

标签: java android android-studio


【解决方案1】:

您的MainActivity 类不必要地实现了View.OnClickListener 接口。删除implements View.OnClickListener 即可。

【讨论】:

    【解决方案2】:

    当您实现 View.OnClickListener 接口时,您需要在您的活动中实现 onClick 方法。您可以删除此实现,因为您在代码中为登录按钮分配了 onClickListener。

    您可以为您的 Activity 实现 View.OnClickListener,在您的 Activity 中实现 onClick 方法,将每个 View 的每个 onClickListener 设置为this,并在您的 Activity 的 onClick 方法中使用 id 开关捕获所有事件。这是我做的事情,当我在一个活动中获得一些 onClick 方法以将 onClick 的所有方法放在一个地方时

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多