无法理解为什么我在这段代码中收到错误?

时间:2012-07-01 10:00:10

标签: android onclicklistener

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

第1行--->它建议将setonclicklistener转换为setkeylistener   并在第3行删除覆盖注释但它应该在那里找不到错误帮助我...

3 个答案:

答案 0 :(得分:3)

@Override上使用public void onClick(View v)并非强制要求,但可能是验证您没有违反其签名的充分理由。但是,如果您选择使用@Override,请确保您的项目符合Java 1.6。如果没有,您可能会得到“...必须覆盖超类方法”错误。要启用此功能,请右键单击Eclipse中的项目文件夹,然后选择底部的Properties。然后转到Java Compiler并从顶部的下拉菜单中选择1.6。{/ p>

另请确保您使用Compiler compliance level s View

OnClickListener

答案 1 :(得分:0)

使用

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

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

答案 2 :(得分:0)

您可能需要在OnClickListener前添加View,如下所示:

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

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