方法不会从其超类错误中覆盖方法

时间:2019-03-19 18:10:16

标签: android

仅此@Override方法出现错误。虽然,其他所有@Override方法都可以。我没有在那些相同的错误。

感谢您的帮助。

@Override
public void onClick(View v) {
    int i = v.getId();
    if (i == R.id.Register) {
        createAccount( mEmailView.getText().toString(), mPasswordView.getText().toString() );
    } else if (i == R.id.Login){
        Intent in = new Intent( LoginActivity.this, LoginActivity2.class );
        startActivity(in);

    }
}

2 个答案:

答案 0 :(得分:1)

您收到警告,因为在该方法上错误地插入了@Override注释。

父类上没有OnClick(View v)方法。因此,您不能覆盖父类中不存在的方法。

只需删除@Override,该警告就会发出:

// @Override --> Remove this
public void onClick(View v) {
    int i = v.getId();
    if (i == R.id.Register) {
        createAccount( mEmailView.getText().toString(), mPasswordView.getText().toString() );
    } else if (i == R.id.Login){
        Intent in = new Intent( LoginActivity.this, LoginActivity2.class );
        startActivity(in);

    }
}

答案 1 :(得分:0)

我认为您正在尝试实现onClickListener。 您应该在活动中实现View.OnClickListener接口。

public class YourActivityName extends AppCompatActivity implements View.OnClickListener

然后在onCreate()方法中,您可以使用yourButton.setOnClickListener(this);

正如我在评论中看到的那样,要从注册按钮开始活动,请在onCreate之外执行此操作:

Button registerBtn;

onCreate方法内部执行此操作:

registerBtn=findViewById(R.id.register);
registerBtn.setOnClickListener(this);

onClick方法内部执行此操作:

if(v.equals(registerBtn))
{
Intent intent=new Intent(getApplicationContext(),OtherActivity.class);
startActivity(intent);
finish();
}