我的同事以前有关某个警报对话框的源代码是
this.mProgressDialog = new ProgressDialog()
{
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
SimLog.d(TAG, "onKeyDown()[back:4]=" + keyCode);
if (keyCode == KeyEvent.KEYCODE_BACK) {
dismiss();
doCancelImport();
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
};
要对此对话框进行一些修改,我必须将此代码更改为:
this.mProgressDialog = mBuilder.create();
this.mProgressDialog.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
SimLog.d(TAG, "onKeyDown()[back:4]=" + keyCode);
if (keyCode == KeyEvent.KEYCODE_BACK) {
dismiss();
doCancelImport();
finish();
return true;
}
return super.onKey(keyCode, event);
}
});
但是我的日食显示了一个错误:
“ Dialog类型的方法setOnKeyListener(DialogInterface.OnKeyListener)不适用于参数(new OnKeyListener())”
为什么这不起作用?我该如何修改?
最佳答案
您可能导入了错误的OnKeyListener
类,因此setOnKeyListener()
的参数类型不匹配。
您可以改用以下方法:
this.mProgressDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
或者您使用
import android.content.DialogInterface.OnKeyListener;
导入正确的类型关于java - 为什么我的setOnKeyListener()不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34387282/