Java 安卓onclick事件?

Java 安卓onclick事件?,java,android,onclick,onclicklistener,Java,Android,Onclick,Onclicklistener,我正式发疯了,为什么这不能正常工作。我几乎什么都试过了,但它没有正确地调用onclick事件 这是我在=符号后收到的错误消息 The type new DialogInterface.OnClickListener(){} must implement the inherited abstract method DialogInterface.OnClickListener.onClick(DialogInterface, int) 一直告诉我要添加未实现的项目。但我认为它是通过视图v实现的

我正式发疯了,为什么这不能正常工作。我几乎什么都试过了,但它没有正确地调用onclick事件

这是我在=符号后收到的错误消息

The type new DialogInterface.OnClickListener(){} must implement the
inherited abstract method
DialogInterface.OnClickListener.onClick(DialogInterface, int)
一直告诉我要添加未实现的项目。但我认为它是通过
视图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);
                        }
                    }   
                }
                });

mEraserBtn=(ImageView)findViewById(R.id.eraserBtn);
mEraserBtn.setOnClickListener(新OnClickListener){
公共void onClick(视图v){
//TODO自动生成的方法存根
int nBtnID=mEraserBtn.getId();
//如果模式未更改,请打开设置视图。如果模式相同,请关闭设置视图。
如果(nBtnID==mEraserBtn.getId()){
if(mSCanvas.getCanvasMode()==SCanvasConstants.SCANVAS\u MODE\u INPUT\u橡皮擦){
mSCanvas.toggleShowSettingView(SCanvasConstants.SCANVAS_SETTINGVIEW_橡皮擦);
}
否则{
mSCanvas.setCanvasMode(SCanvasConstants.SCANVAS_MODE_INPUT_橡皮擦);
mSCanvas.showSettingView(scanvascants.SCANVAS_SETTINGVIEW_橡皮擦,false);
}
}   
}
});
类型new DialogInterface.OnClickListener(){}必须实现 继承抽象方法 DialogInterface.OnClickListener.onClick(DialogInterface,int)

您导入了不正确的
OnClickListener
。你的进口必须是

import android.view.View.OnClickListener;
而不是

import android.content.DialogInterface.OnClickListener;

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

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

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

如果有效,您需要像前面提到的那样组织您的导入。

回答您自己的问题,以备将来参考,如果其他人遇到同样的问题。谢谢,我知道有点问题,只是无法解决。@RichTalcik欢迎您。若这个答案对其他开发者有效,那个么接受这个答案作为有效答案:)thnaks