我正在制作一个Android应用程序,我有一些按钮。
我想为它们添加一些监听器,所以我实现了android.view.View.OnClickListener
,并为按钮添加了监听器。
但是,在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
修改
我发现这适用于我尝试使用的大部分方法,例如public void run()
(来自Runnable
)。
答案 0 :(得分:2)
因为没有什么可以覆盖,所以你实现的接口不是从已经有该方法定义的超类继承子类。 这根本没有意义。
答案 1 :(得分:0)
您可以尝试将java sdk版本更改为1.6并将修复它