2013-03-25 165 views
2

我正式瘋了,爲什麼這不能正常工作。我已經嘗試了幾乎所有的東西,但它沒有正確調用onclick事件?Android onclick事件?

這是我收到等號(=)

The type new DialogInterface.OnClickListener(){} must implement the 
inherited abstract method 
DialogInterface.OnClickListener.onClick(DialogInterface, int) 

後不斷告訴我添加未實現的項目我的錯誤消息。但我認爲它是用View v實現的?

任何人都可以幫助我理解爲什麼這不能正常工作?

即使我在開始時實現了onclick監聽器,它仍然無法工作?我很困惑?

<ImageView 
    android:id="@+id/eraserBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dip" 
    android:layout_weight="1" 
    android:background="@drawable/selector_tool_bg" 
    android:src="@drawable/eraser" /> 


      mEraserBtn = (ImageView) findViewById(R.id.eraserBtn); 

      mEraserBtn.setOnClickListener(new OnClickListener){ 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        int nBtnID = mEraserBtn.getId(); 
        // If the mode is not changed, open the setting view. If the mode is same, close the setting view. 
        if(nBtnID == mEraserBtn.getId()){ 
         if(mSCanvas.getCanvasMode()==SCanvasConstants.SCANVAS_MODE_INPUT_ERASER){ 
          mSCanvas.toggleShowSettingView(SCanvasConstants.SCANVAS_SETTINGVIEW_ERASER); 
         } 
         else{ 
          mSCanvas.setCanvasMode(SCanvasConstants.SCANVAS_MODE_INPUT_ERASER); 
          mSCanvas.showSettingView(SCanvasConstants.SCANVAS_SETTINGVIEW_ERASER, false); 
         } 
        } 
       } 
       }); 
+1

提出你自己的問題,以備將來參考,如果其他人遇到同樣的問題。 – Cheesebaron 2013-03-25 22:45:08

回答

3

類型新DialogInterface.OnClickListener(){}必須實現 繼承的抽象方法 DialogInterface.OnClickListener.onClick(DialogInterface,INT)

已導入不正確OnClickListener。您導入的是

import android.view.View.OnClickListener; 

,而不是

import android.content.DialogInterface.OnClickListener; 

兩者有相同的名稱(易犯錯誤),但它們是不同的。小心。

+0

謝謝我知道有什麼問題只是無法弄清楚。 – 2013-03-25 22:49:29

+0

@RichTalcik歡迎您。如果答案有效,那麼對於其他開發者來說,接受答案就像工作一樣:) thnaks – Sajmon 2013-03-25 23:12:41

0

也許你有另一個ClickListener的對話框中您的應用程序,或者要導入的錯誤ClickListener,試圖做到這一點,測試,如果是:

  mEraserBtn.setOnClickListener(new android.view.View.OnClickListener){ 

如果一切正常,你需要整理如前所述的進口