在一个界面弹出AlertDialog后屏蔽home键
AlertDialog dialog = builder.create();
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode,
KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_HOME)
return true;
return false;
}
});
dialog.show();
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
public class BaseProgressDialog extends ProgressDialog {
public BaseProgressDialog(Context context) {
super(context);
setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
// TODO Auto-generated method stub
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
}
});
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_HOME:
return true;
}
return super.dispatchKeyEvent(event);
}
public static BaseProgressDialog show(Context context, CharSequence title,
CharSequence message) {
BaseProgressDialog dialog = new BaseProgressDialog(context);
dialog.setTitle(title);
dialog.setMessage(message);
dialog.setIndeterminate(false);
dialog.setCancelable(false);
dialog.setOnCancelListener(null);
dialog.show();
return dialog;
}
}
|