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;
}
有沒有辦法解決這個問題的方法嗎?
編輯:對不起onKeyPressed
和released
。實際上意味着onKeyDown
和onKeyUp
:
@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參數。