Why do I get "must override a superclass method" with @Override?

Richard Eng picture Richard Eng · Jan 2, 2012 · Viewed 79.1k times · Source

The following code generates this error message at the public void onClick line.

Multiple markers at this line
- implements android.view.View.OnClickListener.onClick
- The method onClick(View) of type new View.OnClickListener(){} must override a superclass method

I can't understand why. This code is taken from numerous examples I've seen. What can possibly be wrong?

private Button audioButton;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    audioButton = (Button) findViewById(R.id.imageButton1);
    audioButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View button) {
            if (button.isSelected()) {
                button.setSelected(false);
            }
            else {
                button.setSelected(true);
            }
        }
    });
}

Answer

Diego Torres Milano picture Diego Torres Milano · Jan 2, 2012

Check the project's properties and verify that Java Compiler -> Compiler compliance level is set to 1.6.