button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
db.update();
}
});
线1 --->这是在暗示转换setonclicklistener到setkeylistener 和第3行,除去覆盖注解,但是它应该在那里无法找到错误帮我...无法理解为什么我在这段代码中得到错误?
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
db.update();
}
});
线1 --->这是在暗示转换setonclicklistener到setkeylistener 和第3行,除去覆盖注解,但是它应该在那里无法找到错误帮我...无法理解为什么我在这段代码中得到错误?
这不是马ndatory在public void onClick(View v)
上使用@Override
,但可能是验证您没有违反其签名的一个很好的理由。但是,如果您选择使用@Override
,请确保您的项目符合Java 1.6。如果没有,您可能会得到“...必须重写超类方法”错误。要启用它,请右键单击Eclipse内的项目文件夹,然后在底部选择Properties
。然后转到Java Compiler
并从顶部的下拉菜单中选择1.6
(Compiler compliance level
)。
还要确保您使用View
小号OnClickListener
:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db.update();
}
});
使用
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db.update();
}
});
,并确保您要导入import android.view.View.OnClickListener;
包
你可能需要添加视图在OnClickListener面前是这样的:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db.update();
}
});
另一个潜在的问题:里面的OnClick代码将在UI线程中运行,更新数据库可以是一个长时间的阻塞操作,所以你不应该在UI线程中这样做。相反,创建一个新的线程。
重写该方法没有任何问题。事实上,我会推荐它,所以当你不小心使用了一些错误的参数时会出错。 – nhaarman
好的,谢谢。增加了关于如何避免潜在问题的澄清和提示。 –