<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                > 編寫:[zhaochunqi](https://github.com/zhaochunqi) - 原文:[http://developer.android.com/training/keyboard-input/commands.html](http://developer.android.com/training/keyboard-input/commands.html) 當預估給予可編輯當文本域焦點時,如一個[EditText](http://developer.android.com/reference/android/widget/EditText.html)元素,而且用戶擁有一個實體鍵盤連接,所有當輸入由系統處理。然而如果你想接管或直接處理鍵盤輸入鍵盤操作,通過實現接口[KeyEvent.Callback](http://developer.android.com/reference/android/view/KeyEvent.Callback.html)的回調方法,如 [onKeyDown()](http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown(int, android.view.KeyEvent))和[onKeyMultiple()](http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyMultiple(int, int, android.view.KeyEvent)). [Activity](# "An activity represents a single screen with a user interface.")和View類都實現了[KeyEvent.Callback](http://developer.android.com/reference/android/view/KeyEvent.Callback.html)的接口,所以通常你只需要在這些重寫回調方法來適當的擴展這些類。 > **注意:**當使用KeyEvent類和相關的API處理鍵盤事件時,你期望的應該是只從實體鍵盤中接收。你永遠不應該指望從一個軟鍵盤(如屏幕鍵盤)來接受點擊事件。 ### 處理單個按鍵點擊事件 處理單個的按鍵點擊,實現合適的 [onKeyDown()](http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown(int, android.view.KeyEvent)) 或 [onKeyUp()](http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyUp(int, android.view.KeyEvent))。通常,你使用[onKeyUp()](http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyUp(int, android.view.KeyEvent))來確保你只接收一個事件。如果用戶點擊并按住按鈕不放,[onKeyDown()](http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown(int, android.view.KeyEvent))會被調用多次。 舉例,這是一個對一些按鍵控制游戲的實現: ~~~ @Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_D: moveShip(MOVE_LEFT); return true; case KeyEvent.KEYCODE_F: moveShip(MOVE_RIGHT); return true; case KeyEvent.KEYCODE_J: fireMachineGun(); return true; case KeyEvent.KEYCODE_K: fireMissile(); return true; default: return super.onKeyUp(keyCode, event); } } ~~~ ### 處理修飾鍵 為了對修飾鍵進行回應如一個組合Shift和Control修飾鍵,你可以查詢[KeyEvent](http://developer.android.com/reference/android/view/KeyEvent.html)傳遞到回調方法。一些方法提供一些信息關于修飾鍵如getModifiers() 和 getMetaState()。然而,最簡單的解決方案時檢查你關心的按鍵是否被按下了的方法,如 [isShiftPressed()](http://developer.android.com/reference/android/view/KeyEvent.html#isShiftPressed()) 和 [isCtrlPressed()](http://developer.android.com/reference/android/view/KeyEvent.html#isCtrlPressed())。 例如,有一個[onKeyDown()](http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown(int, android.view.KeyEvent)) 的實現,當Shift鍵和一個其他當鍵按下當時候做一些額外的處理: ~~~ @Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { ... case KeyEvent.KEYCODE_J: if (event.isShiftPressed()) { fireLaser(); } else { fireMachineGun(); } return true; case KeyEvent.KEYCODE_K: if (event.isShiftPressed()) { fireSeekingMissle(); } else { fireMissile(); } return true; default: return super.onKeyUp(keyCode, event); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看