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