2013-03-25 109 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){ 

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