开发者

The method onClick(View) of type oddg must override a superclass method?

I am occurring error like:

"The method onClick(View) of type oddg must override a superclass method".

I am confused where exactly error has occurred. Can you please guide me, what exactly error is?

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) fin开发者_Python百科dViewById(R.id.startbtn);
            startbtn.setOnClickListener(this);

        }

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

This is my code... Thanks in Advance-- Onkar


I think the problem is that you're compiler settings are set to Java 1.5 instead of Java 1.6. Since Java 1.6 the annotation @Override is not only possible for inherited methods from a superclass but also for implemented methods from an interface. But if your compiler is still set to 1.5 the problem is that he will check if you're overwriting a method from a super class. In your example this is not the case since you're implementing a method from an interface.

As a side note it would be good to follow Java Naming Conventions in your code. So all classes begin with an upper case letter.


I had the same trouble and I fixed it like this:

  • Open Project settings->Java Compiler
  • Set Enable Project Specific Settings to disable


This isn't directly appropriate to this question but you will also get this error if you haven't declared implements OnClickListener on the class declaration.

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

This may seem dum to the more experienced coder but I'm new to this and it fooled me.


Read about @Override annotation. It means, that once you have annotated the method with @Override, the compiler checks if it really an overrided method, and shows an error if its not.

Also, you have to have Language Level 6 in order to use it with interface implementing methods. In IDEA you can do it via Project Setup.


I had the same problem. I found the solution writing well the import.

I replaced

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

for

import android.view.View.OnClickListener;


"RoflcoptrException" is right! You shoud set java compiler to 1.6 Project properties -> Java compiler ->1.6


If you are using android studio , you can also override your method by pressing ctrl+O or just go to code-> Overide and override appropriate method . It will automatically override your method .

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜