私はAndroidアプリケーションを作成しており、いくつかのボタンがあります。 リスナーを追加したいので、android.view.View.OnClickListener
を実装し、リスナーをボタンに追加しました。コンパイラにonClickをオーバーライドするように指示できないのはなぜですか
しかし、onClick
方法で、私はこのようなOverride
注釈を追加することはできません。
@Override
public void onClick(View view) { /* With Override */ }
をしかし、これは動作します:
public void onClick(View view) { /* Without Override */ }
そして、私は後者で何かをログに記録しようとした場合onClickメソッドは、意図したとおりに動作します。
私はEclipseを使用しており、スーパークラスメソッドをオーバーライドする必要があることを私に伝え続けます。
オーバーライドすると、なぜOverride
アノテーションを追加できないのですか?
私はUbuntu 11.4を使用しています。 java -version
リターン:
import android.view.View.OnClickListener;
public class Main extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnFoo = (Button) findViewById(R.id.btnFoo);
btnFoo.setOnClickListener(this);
}
// @Override
public void onClick(View v) {
Log.e("foo", "bar");
}
}
PS:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
ここでは、コードです。私は、Sun JDK 1.6
EDITを使用しています:
私はpublic void run()
(Runnable
から)例えば、これは私が使用しようとしている方法のほとんどに適用されることがわかりました。
なぜ*追加できませんか?あなたがそれをするなら、問題は何ですか? – Pit
私が書きましたように:*私はEclipseを使用しており、スーパークラスメソッドをオーバーライドする必要があることを私に伝え続けます。* – whirlwin
ああ、すみません。私はあなたを間違って理解した。 – Pit