Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我不能为对话框视图中的按钮设置onClickListener?_Android_Android Layout_Android Emulator_Android Widget_Android Manifest - Fatal编程技术网

Android 为什么我不能为对话框视图中的按钮设置onClickListener?

Android 为什么我不能为对话框视图中的按钮设置onClickListener?,android,android-layout,android-emulator,android-widget,android-manifest,Android,Android Layout,Android Emulator,Android Widget,Android Manifest,我有一个自定义对话框,如下所述 我的自定义对话框布局(*My_Dialog.xml*),其中仅包含一个“dismise”按钮: 正如上面所述的代码,我在对话框上有一个“*dismise\u btn*”按钮,我想在按下dismise按钮时关闭对话框,但是当我的代码中出现一个错误,即当按下dismise按钮时(如代码所示) 错误消息(eclipse编辑器抛出错误): 类型视图中的方法setOnClickListener(View.OnClickListener)不适用于参数(new DialogIn

我有一个自定义对话框,如下所述

我的自定义对话框布局(*My_Dialog.xml*),其中仅包含一个“dismise”按钮:

正如上面所述的代码,我在对话框上有一个“*dismise\u btn*”按钮,我想在按下dismise按钮时关闭对话框,但是当我的代码中出现一个错误,即当按下dismise按钮时(如代码所示)

错误消息(eclipse编辑器抛出错误):

类型视图中的方法setOnClickListener(View.OnClickListener)不适用于参数(new DialogInterface.OnClickListener(){})


为什么我会出错?为什么我不能为对话框视图中的按钮设置onClickListener?

因为eclipse认为它是DialogInterface onClickListener,但您需要一个视图onClickListener,所以它将是

                dismissMeBtn.setOnClickListener(new View.OnClickListener() { 
                @Override
                public void onClick(View v) {
                     MyDialog.this.dismiss(); 
                }
              });

这是因为您处于
DialogInterface
的上下文中,并且它本身具有
OnClickListener
接口

您的代码应该是:

dismissMeBtn.setOnClickListener(new View.OnClickListener() { 
    @Override
    public void onClick(View v) {
         MyDialog.this.dismiss(); 
    }
});

看来你的进口产品有问题。 当您尝试创建新的OnClickListener时,您正在调用DialogInterface.OnClickListener的构造函数,该构造函数不是按钮所需的OnClickListener(可能是由于导入android.content.DialogInterface.OnClickListener的


尝试使用
newview.OnclickListener(){…}
或将导入替换为
import android.View.View.OnclickListener
,这应该是正确的。

需要使用这种方法来实现“片段分页器”示例:。希望它能帮助别人!
                dismissMeBtn.setOnClickListener(new View.OnClickListener() { 
                @Override
                public void onClick(View v) {
                     MyDialog.this.dismiss(); 
                }
              });
dismissMeBtn.setOnClickListener(new View.OnClickListener() { 
    @Override
    public void onClick(View v) {
         MyDialog.this.dismiss(); 
    }
});