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

Я встречаю ошибку, например: "Метод onClick (Вид) типа 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)
            { }
    }

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

Ответы

Ответ 1

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

В качестве побочного примечания было бы хорошо следовать Соглашениям о присвоении имен Java в вашем коде. Таким образом, все классы начинаются с буквы верхнего регистра.

Ответ 2

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

  • Открыть настройки проекта → Компилятор Java
  • Установите Включить специальные настройки проекта до disable

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

У меня была та же проблема. Я нашел решение, хорошо записывающее импорт.

Я заменил

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

для

import android.view.View.OnClickListener;

Ответ 6

"RoflcoptrException" - это правильно! Вы используете java-компилятор для 1.6 Свойства проекта → Компилятор Java → 1.6

Ответ 7

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