2012-07-01 77 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線程中這樣做。相反,創建一個新的線程。

相關問題