2012-07-01 79 views
0
button.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
db.update(); 
} 
}); 

线1 --->这是在暗示转换setonclicklistener到setkeylistener 和第3行,除去覆盖注解,但是它应该在那里无法找到错误帮我...无法理解为什么我在这段代码中得到错误?

回答

3

这不是马ndatory在public void onClick(View v)上使用@Override,但可能是验证您没有违反其签名的一个很好的理由。但是,如果您选择使用@Override,请确保您的项目符合Java 1.6。如果没有,您可能会得到“...必须重写超类方法”错误。要启用它,请右键单击Eclipse内的项目文件夹,然后在底部选择Properties。然后转到Java Compiler并从顶部的下拉菜单中选择1.6Compiler compliance level)。

还要确保您使用View小号OnClickListener

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     db.update(); 
    } 
}); 
+1

重写该方法没有任何问题。事实上,我会推荐它,所以当你不小心使用了一些错误的参数时会出错。 – nhaarman

+1

好的,谢谢。增加了关于如何避免潜在问题的澄清和提示。 –

0

使用

button.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
db.update(); 
} 
}); 

,并确保您要导入import android.view.View.OnClickListener;

0

你可能需要添加视图在OnClickListener面前是这样的:

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    db.update(); 
    } 
}); 

另一个潜在的问题:里面的OnClick代码将在UI线程中运行,更新数据库可以是一个长时间的阻塞操作,所以你不应该在UI线程中这样做。相反,创建一个新的线程。

相关问题