1. 直接上代码
1 dialog.setOnKeyListener(new OnKeyListener() { 2 @Override 3 public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 4 // event.getRepeatCount()==0:重复的次数,使得代码更健壮 5 if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0){ // 返回 6 MLog.d("---------dialog-- onKeyDown-----KEYCODE_BACK -------------------"); 7 } else if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && event.getAction() == KeyEvent.ACTION_UP) { // 按下 8 MLog.d("---------dialog-- onKeyDown-----KEYCODE_VOLUME_DOWN -------------------"); 9 } else if(keyCode == KeyEvent.KEYCODE_VOLUME_UP && event.getAction() == KeyEvent.ACTION_UP) {// 按上 10 MLog.d("---------dialog-- onKeyDown-----KEYCODE_VOLUME_UP -------------------"); 11 } 12 return false; 13 } 14 });
2. dialog.setCanceledOnTouchOutside(true); // 点击dialog的空白处关闭dialog