我正在製作一個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
返回:
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)
下面是代碼:
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。我使用Sun JDK 1.6
編輯:
我發現這適用於大多數的我試圖使用的方法,e.g public void run()
(從Runnable
)。
爲什麼*不能*添加它?如果你這樣做,會出現什麼問題? – Pit
正如我寫的:*我使用Eclipse,並一直告訴我,我必須重寫超類方法。* – whirlwin
哦,對不起。我明白你錯了。 – Pit