一、AlterDialog设置禁止监听返回键属性:
1.首先看一下AlterDialog的官方介绍:
alertdialog extends dialog, 我们看源码的api会有这两个方法:
/**
* Sets whether this dialog is cancelable with the
* {@link KeyEvent#KEYCODE_BACK BACK} key.
*/
public void setCancelable(boolean flag) {
mCancelable = flag;
}
【注释已经说明了:是否屏蔽KEYCODE_BACK键】
serCancleable(true): 表示不关闭KEYCODE_BACK。
二、设置onKeyListener监听:
/**
* Sets the callback that will be called if a key is dispatched to the dialog.
*/
public void setOnKeyListener(final OnKeyListener onKeyListener) {
mOnKeyListener = onKeyListener;
}
【这是对key的监听方法】
例如:
alertdialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK){
alertdialog.dismiss();
this.Context.finish();
return true;
}
return false;
}
});
【这里监听了KEYCODE_BACK: 关闭当前dialog】
【一般情况,KEYCODE_BACK返回键自动弹出当前Activity栈中的最上面的Activity。】
|