Android onClick(View) はスーパークラスのメソッドをオーバーライドする必要があります 【Android TIPS】
Androidの開発中にこんなエラーが表示されることがあります。
型 MainActivity のメソッド onClick(View) はスーパークラスのメソッドをオーバーライドする必要があります
「@Override」を削除すればエラー自体は解消しますが、いまいち気持ち悪いですよね。
原因は、Javaコンパイラーが1.6以上になっていないことなのです。
Javaコンパイラーの変更方法
1.プロジェクト名(HelloWorld等)を右クリック→プロパティー
2.Javaコンパイラーをクリック
3.「プロジェクト固有の設定を可能にする」にチェックを入れ、「コンパイラー準拠レベル」を1.6にします。
4.OKをクリックすると、ダイアログが表示されるので「はい」をクリック
エラーが解消されたはずです。
エラーの発生原因は?
「@Override」はアノテーションという機能で、今回の場合は”onClick()メソッドをオーバーライドしています”という印付けしている機能になります。
たとえば、引数やメソッド名を誤ったタイプをしていると、コンパイルエラーを出してプログラマに知らせてくれるのです。
今回のonClick()メソッドはOnClickListenerインタフェースに定義されている”抽象メソッド”です。
実は、JDK1.5以前では抽象メソッドのオーバーライドはできなかったのです。
(スーパークラスのメソッドのオーバーライドのみサポートしていました。)
しかし、JDK1.6で機能強化が図られ、抽象メソッドのオーバーライドもサポートするようになりました。
Eclipse 4.2 (Juno)ではデフォルトのJDKが1.6になりましたので、このエラーは発生しませんが、
Eclipse 3.7 (Indigo)以前のものをお使いの方は、JDK1.5がデフォルトになっていますので発生することがあります。