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
好的,謝謝。增加了關於如何避免潛在問題的澄清和提示。 –