2012-02-19 56 views
2

今天我試圖加載我的遊戲到xperia迷你專業版,並意識到,每當硬件按鈕被按下,我收到onKeyDown回撥如預期,但然後立即我得到onKeyUp在同一把鑰匙,當我真正釋放該鍵,不調用回調方法。安卓鍵盤問題與密鑰發佈

輸入代碼如下所示:

public final boolean buttons(int keyCode, KeyEvent event, boolean state) { 
    boolean handled = true; 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_DPAD_UP: 
     case KeyEvent.KEYCODE_W: 
      this.input.KEY_UP = state; 
      Logger.print("UP: " + state); 
     break; 
     case KeyEvent.KEYCODE_DPAD_RIGHT: 
      Logger.print("RIGHT: " + state); 
      this.input.KEY_RIGHT = state; 
     break; 
     case KeyEvent.KEYCODE_DPAD_DOWN: 
     case KeyEvent.KEYCODE_S: 
      this.input.KEY_DOWN = state; 
      Logger.print("DOWN: " + state); 
     break; 
     case KeyEvent.KEYCODE_DPAD_LEFT: 
      this.input.KEY_LEFT = state; 
     break; 
     case KEYCODE_BUTTON_SQUARE: 
     case KeyEvent.KEYCODE_L: 
      this.input.KEY_FORWARD = state; 
     break; 
     case KEYCODE_BUTTON_TRIANGLE: 
     case KeyEvent.KEYCODE_K: 
      this.input.KEY_BACKWARD = state; 
     break; 
     case KeyEvent.KEYCODE_DPAD_CENTER: 
      this.input.KEY_ACTION = state; 
     break; 
     default: 
      handled = false; 
     break; 
    } 
    return handled; 
} 

有沒有辦法解決這個問題的方法嗎?

編輯:對不起onKeyPressedreleased。實際上意味着onKeyDownonKeyUp

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    return features.inputManager.inputButtons.press(keyCode, event) ? 
      true : super.onKeyDown(keyCode, event); 
} 

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    return features.inputManager.inputButtons.release(keyCode, event) ? 
      true : super.onKeyUp(keyCode, event); 
} 

按下和釋放方法調用按鈕法true或false參數。

回答

0

嘗試使用:

@Override 
public boolean onKeyUp(inr keyCode,KeyEvent event) { 
//your stuffs 
}