Метод 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 и переопределите соответствующий метод.
Он автоматически переопределит ваш метод.