在Android中实现监听 返回键,主键,菜单键
生活随笔
收集整理的這篇文章主要介紹了
在Android中实现监听 返回键,主键,菜单键
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、監聽 返回鍵 onKeyDown方法和onBackPressed方法
onKeyDown: 是當某個按鍵被按下是觸發。所以也有人在點擊返回鍵的時候去執行該方法來做判斷。(該方法只是android 1.0~ android 2.1)代碼如下:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同時沒有重復Toast.makeText(this,"返回鍵Back鍵測試",Toast.LENGTH_SHORT).show();return true;}return super.onKeyDown(keyCode, event); }onBackPressed: 在android 2.0開始多出了關于返回鍵的單獨的事件方法,可以在該方法里面執行當點擊返回鍵的時候做什么…所以,后期都是用這個方法比較多,代碼如下:
@Override public void onBackPressed() {// 這里處理邏輯代碼,大家注意:該方法僅適用于2.0或更新版的sdkreturn; }如果要考慮版本兼容的話,代碼可這么寫:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) {// 是否觸發按鍵為back鍵if (keyCode == KeyEvent.KEYCODE_BACK) {onBackPressed();return true;} else {// 如果不是back鍵正常響應return super.onKeyDown(keyCode, event);} }點擊兩次返回鍵退出,防止誤操作
//重寫onKeyDown()方法,繼承自退出的方法 private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){if((System.currentTimeMillis()-exitTime) > 2000){Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {finish();System.exit(0);}return true;}return super.onKeyDown(keyCode, event); } //重寫onBackPressed()方法 //退出時間 privatelongcurrentBackPressedTime= 0; //退出間隔 privatestaticfinalintBACK_PRESSED_INTERVAL= 2000; //重寫onBackPressed()方法,繼承自退出的方法 @Override public void onBackPressed() {//判斷時間間隔if(System.currentTimeMillis()-currentBackPressedTime>BACK_PRESSED_INTERVAL) {currentBackPressedTime= System.currentTimeMillis();Toast.makeText(this,"再按一次返回鍵退出程序", Toast.LENGTH_SHORT).show();}else{//退出finish();} }二、監聽 主鍵(Home鍵)
監聽Home鍵可以通過onUserLeaveHint()方法來實現,代碼如下:
@Override protected void onUserLeaveHint() {super.onUserLeaveHint();Toast.makeText(this, "onUserLeaveHint", Toast.LENGTH_SHORT).show(); }三、監聽 菜單鍵
菜單的監聽也可以通過onKeyDown()方法來實現,代碼如下:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_MENU) {Toast.makeText(this, "onkeyDown clicked", Toast.LENGTH_SHORT).show();super.openOptionsMenu(); // 調用這個,就可以彈出菜單}return true; // 最后,一定要做完以后返回 true,或者在彈出菜單后返回true,其他鍵返回super,讓其他鍵默認 }onOptionsMenuClosed()方法也可以實現,代碼如下:
@Override public void onOptionsMenuClosed(Menu menu) {super.onOptionsMenuClosed(menu);Toast.makeText(this, "onOptionsMenuClosed clicked", Toast.LENGTH_SHORT).show(); }總結
以上是生活随笔為你收集整理的在Android中实现监听 返回键,主键,菜单键的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 中三种启用线程的方法
- 下一篇: Android程序App开机自启动