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

1 行目 ---> setonclicklistener を setkeylistener に変換し、3 行目でオーバーライド アノテーションを削除することを提案していますが、エラーが見つからないはずです...

4

3 に答える 3

3

@Overrideonの使用は必須でpublic void onClick(View v)はありませんが、その署名に違反していないことを確認する十分な理由になる可能性があります。ただし、 を使用する場合は@Override、プロジェクトが Java 1.6 に準拠していることを確認してください。そうでない場合、「... スーパークラス メソッドをオーバーライドする必要があります」というエラーが発生する可能性があります。これを有効にするには、Eclipse 内のプロジェクト フォルダーを右クリックしProperties、下部にある を選択します。次に、上部のドロップダウン メニューに移動しJava Compilerて選択します ( )。1.6Compiler compliance level

また、Viewsを使用していることを確認してくださいOnClickListener:

button.setOnClickListener(new View.OnClickListener() {
    @Override   
    public void onClick(View v) {
         db.update();
    }
});
于 2012-07-01T10:12:10.180 に答える
0

使用する

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

import android.view.View.OnClickListener;パッケージをインポートしていることを確認してください

于 2012-07-01T10:10:29.620 に答える
0

おそらく、次のように OnClickListener の前に View を追加する必要があります。

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

別の潜在的な問題: OnClick 内のコードは UI スレッドで実行されます。DB の更新は時間がかかり、操作をブロックする可能性があるため、UI スレッドでは実行しないでください。代わりに、新しいスレッドを作成します。

于 2012-07-01T10:15:52.010 に答える