【问题标题】:Android onclick event?Android onclick 事件?
【发布时间】:2013-03-26 07:00:24
【问题描述】:

对于为什么这不能正常工作,我正式发疯了。我已经尝试了几乎所有方法,但它没有正确调用 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);
                        }
                    }   
                }
                });

【问题讨论】:

  • 提出您自己的问题以供将来参考以及其他人是否遇到同样的问题。

标签: java android onclick onclicklistener


【解决方案1】:

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

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

import android.view.View.OnClickListener;

而不是

import android.content.DialogInterface.OnClickListener;

两者名称相同(容易出错)但它们不同。小心点。

【讨论】:

  • 谢谢,我知道出了点问题,只是想不通。
  • @RichTalcik 欢迎您。如果答案对其他开发人员有效,则接受答案作为工作之一:) thnaks
【解决方案2】:

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

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

如果可行,您需要按照前面提到的方式组织导入

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    相关资源
    最近更新 更多