Ich habe ein einfaches Android-Spiel, basierend auf dem Lunar Lander Sample erstellt, und ich habe ein Problem mit der Handhabung wichtiger Ereignisse. Wenn die Aktivität gestartet wird, sind die Tasten onKeyDown oder onKeyUp die Tasten dpad up/down/left/right. Weder die Tasten "menu", "back" noch "dpad_center" lösen onKey-Methoden aus. Sobald ich jedoch eine der Tasten dpad up/down/left/right gedrückt habe, können Sie durch Drücken der Tasten menu, back oder dpad_center diese Methoden auslösen. Ich bekomme keine Fehler oder Hinweise darauf, was schief läuft.onKeyDown nicht immer in Android App aufgerufen
Es ist möglich, dass der Fokus falsch eingestellt ist - die Aktivität wird über eine Schaltfläche auf dem Bildschirm gestartet, sodass sie sich im Touchscreen-Modus befinden kann. Wenn das der Fall ist, sollte ich den rechten Fokus-Modus nicht berühren, um das Ereignis zu erfassen?
Ich verwende den Emulator von SDK-1.5r3. Ich konnte das noch nicht an einem echten Handy ausprobieren. Hier ist mein onKeyDown.
public boolean onKeyDown(int keyCode, KeyEvent msg)
{
Log.d(TAG, "onKeyDown: " + keyCode);
return super.onKeyDown(keyCode, msg);
}
Dank
Matt
Es war in der Ansicht - aber beim Auschecken, erkannte ich, dass ich nicht aktiviert hatteFocusableInTouchMode aktiviert - das Hinzufügen in das Problem behoben. –
Ah, cool. Es tut mir leid, dass ich das eigentliche Problem verpasst habe, aber ich bin froh, dass ich helfen konnte. – haseman
Ich habe dies in einem Fragment versucht, aber die onKeyDown() meiner Ansicht wird nie aufgerufen, obwohl ich seine Fokussierbarkeit auf wahr eingestellt habe: 'searchView.setFocusable (true); searchView.setFocusableInTouchMode (true); '. Die onKeyDown() der Aktivität wird zwar aufgerufen, leider aber nicht für den Backkey. – faizal