我不能使这个按钮工作:
public void setConfirmListenner(OnClickListener listener) {
((Button) this.contentView.findViewById(R.id.confirmButton)).setOnClickListener(listener);
}
错误:(296, 85( 错误: 不兼容的类型: android.content.DialogInterface.OnClickListener 无法转换为 android.view.View.OnClickListener
您必须阅读错误的内容:View.OnClickListener
和DialogInterface.OnClickListener
是不同的接口。一个明显的解决方法是将setConfirmListenner
的签名更改为
public void setConfirmListenner(View.OnClickListener listener) {
如果这不是逻辑上发生的事情,即setConfirmListenner
实际上在继承自DialogInterface
的类中,鉴于您的错误,这看起来非常合理,您需要创建一个包装器。这样的东西可能会起作用:
public void setConfirmListenner(final OnClickListener listener) {
((Button) this.contentView.findViewById(R.id.confirmButton)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onClick(MyDialogClass.this, BUTTON_POSITIVE);
}
});
}
其中MyDialogClass
是自定义对话框类的名称。我假设你想传递BUTTON_POSITIVE
作为which
但如果更适合你,你可能会传递其他东西。