Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java oddg类型的onClick(View)方法必须重写超类方法?_Java_Android_Overriding - Fatal编程技术网

Java oddg类型的onClick(View)方法必须重写超类方法?

Java oddg类型的onClick(View)方法必须重写超类方法?,java,android,overriding,Java,Android,Overriding,我正在发生如下错误: oddg类型的onClick(View)方法必须重写一个超类 方法” 我不知道到底哪里出了差错。 你能告诉我,到底是什么错误吗 public class oddg extends Activity implements OnClickListener { ProgressDialog dialog; int increment; int maximum ; private static final String

我正在发生如下错误:

oddg类型的onClick(View)方法必须重写一个超类 方法”

我不知道到底哪里出了差错。 你能告诉我,到底是什么错误吗

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)
        { }
}
这是我的密码。。。 提前谢谢--
Onkar

我认为问题在于,您的编译器设置被设置为Java1.5,而不是Java1.6。由于Java 1.6,注释@Override不仅可以用于从超类继承的方法,也可以用于从接口实现的方法。但是,如果您的编译器仍然设置为1.5,问题是他将检查您是否正在覆盖来自超类的方法。在您的示例中,情况并非如此,因为您正在从接口实现一个方法

作为旁注,最好是遵循代码。所以所有的类都以大写字母开头。

阅读注释。这意味着,一旦您用
@Override
注释了该方法,编译器将检查它是否确实是被重写的方法,如果不是,则显示错误


此外,您必须具有语言级别6才能将其与接口实现方法一起使用。在IDEA中,您可以通过项目设置来完成此操作。

我也遇到了同样的问题,我这样修复了它:

  • 打开项目设置->Java编译器
  • 启用项目特定设置设置设置为
    禁用

这并不直接适用于这个问题,但是如果您没有在类声明中声明
实现OnClickListener
,也会出现此错误

// Wrong
public class aClass extends Activity {
}
// Right
public class aClass extends Activity implements OnClickListener {
}
对于更有经验的程序员来说,这似乎是个傻瓜,但我是新手,它愚弄了我。

“RoflcoptrException”是对的!您应该将java编译器设置为1.6
项目属性->Java编译器->1.6

我也遇到了同样的问题。我发现解决方案写得很好

我换了

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


如果您使用的是android studio,您也可以通过按ctrl+O来覆盖您的方法,或者只需转到code->Overide并覆盖适当的方法。
它将自动覆盖您的方法。

您是否在没有与父接口或实现接口的签名匹配的方法上使用@override注释?无论如何,如果你发布复制问题所需的最小完整代码,人们会更好地帮助你。@thane我已经编辑了我的问题。对于代码,是的,我使用了@Override annotation,nut我想做什么,请指导我。如果你正在使用Eclipse,请转到Windows->Preferences->Java->Compiler,并将编译器遵从性级别更改为1.6。我对Java 1.7也有同样的警告。这是开始!只是为了添加我的,在此更改之后重新启动Eclipse。为我工作。谢谢你的解决方案,但它仍然向我显示了一个错误,即使在更改为1.6之后。因此,我不得不更改为1.7并尝试(尽管有警告),它仍然有效。右键单击您的项目=>Properties=>Java编译器=>将编译器遵从性级别更改为1.6或1.7这是解决方案,一个错误的导入更正,我还使用您的解决方案解决了问题。我投1票+
import android.view.View.OnClickListener;