Android onclick事件?

时间:2013-03-25 22:42:54

标签: java android onclick onclicklistener

我正在疯狂地说为什么这不能正常工作。我已经尝试了很多东西,但它没有正确地调用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);
                        }
                    }   
                }
                });

2 个答案:

答案 0 :(得分:3)

  

新的DialogInterface.OnClickListener(){}类型必须实现   继承抽象方法   DialogInterface.OnClickListener.onClick(DialogInterface,int)

您导入了错误的OnClickListener。您的导入必须是

import android.view.View.OnClickListener;

而不是

import android.content.DialogInterface.OnClickListener;

两者都有相同的名称(容易出错),但它们不同。小心。

答案 1 :(得分:0)

您的应用程序中可能还有另一个ClickL的ClickListener,或者您导入了错误的ClickListener,尝试这样做并测试它是否是:

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

如果有效,您需要按照之前的说明组织进口