Метод onClick (View) типа oddg должен переопределить метод суперкласса? - PullRequest
15 голосов
/ 25 апреля 2011

У меня возникает ошибка типа:

"Метод onClick (View) типа oddg должен переопределить суперкласс метод».

Я запутался, где именно произошла ошибка. Подскажите пожалуйста, в чем именно ошибка?

public class oddg extends Activity implements OnClickListener
{
        ProgressDialog dialog;
        int increment;
        int maximum ;
        private static final String TAG = "ServicesDemo";

        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main1);
            Button startbtn = (Button) findViewById(R.id.startbtn);
            startbtn.setOnClickListener(this);

        }

        @Override
        public void onClick(View arg0)
        { }
}

Это мой код ... Заранее спасибо-- Евсюков

Ответы [ 7 ]

42 голосов
/ 25 апреля 2011

Мне кажется, проблема в том, что у вас в настройках компилятора установлены Java 1.5 вместо Java 1.6.Начиная с Java 1.6, аннотация @Override возможна не только для унаследованных методов из суперкласса, но также и для реализованных методов из интерфейса.Но если ваш компилятор все еще установлен на 1.5, проблема в том, что он проверит, перезаписываете ли вы метод из суперкласса.В вашем примере это не так, поскольку вы реализуете метод из интерфейса.

В качестве примечания было бы хорошо следовать Java Naming Conventions в вашем коде.Поэтому все занятия начинаются с заглавной буквы.

9 голосов
/ 05 декабря 2011

У меня была такая же проблема, и я исправил ее следующим образом:

  • Открыть настройки проекта-> Компилятор Java
  • Установить Включить настройки проекта в disable
3 голосов
/ 07 января 2012

Это не совсем подходит для этого вопроса, но вы также получите эту ошибку, если вы не объявили implements OnClickListener в объявлении класса.

// Wrong
public class aClass extends Activity {
}
// Right
public class aClass extends Activity implements OnClickListener {
}

Это может показаться глупым для более опытныхкодер, но я новичок в этом, и это обмануло меня.

2 голосов
/ 15 января 2014

У меня была такая же проблема. Я нашел решение, хорошо пишущее импорт.

я заменил

import android.content.DialogInterface.OnClickListener; //(wrong)

для

import android.view.View.OnClickListener;
2 голосов
/ 25 апреля 2011

Читать о @Override аннотации.Это означает, что после того, как вы аннотировали метод с помощью @Override, компилятор проверяет, действительно ли это переопределенный метод, и выдает ошибку, если его нет.

Кроме того, вы должны иметь языковой уровень 6, чтобыиспользовать его с методами реализации интерфейса.В IDEA вы можете сделать это через Project Setup.

0 голосов
/ 22 января 2015

Если вы используете Android Studio, вы также можете переопределить свой метод, нажав ctrl + O или просто перейдите к code-> Overide и переопределите соответствующий метод.Он автоматически переопределит ваш метод.

0 голосов
/ 24 октября 2012

«RoflcoptrException» прав! Вы должны установить Java компилятор на 1.6 Свойства проекта -> Компилятор Java -> 1.6

...