Ich habe ein onKeyDown
Ereignis, das nur für die Handhabung der Up und Down Hardware-Tasten in meiner App benötigt wird. Für diese gibt es wahr, wie sie behandelt werden. Für alles andere gibt es false zurück, was ich verstehe, bedeutet, dass das Betriebssystem mit ihnen umgehen sollte. Wenn ich jedoch die Zurück-Taste drücke, wird meine onKeyDown
aufgerufen und gibt false zurück, aber es gibt keinen anderen Effekt. Ich möchte/würde erwarten, dass das Betriebssystem die aktuelle Activity
beendet und die vorherige wieder aufnimmt.Umgang mit Android-Hardware Zurück-Taste
Ist das richtiges Verhalten oder gibt es etwas Amis?
Update:
Prost Jungs, meine onKeyDown Routine wie folgt aussieht, jetzt habe ich gefolgt CommonsWare Rat:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
boolean handled = true;
// handle key presses
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_LEFT:
mCursorX = mCursorX - 1;
if (mCursorX < MAP_MIN_X) { mCursorX = MAP_MIN_X; }
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
mCursorX = mCursorX + 1;
if (mCursorX > MAP_MAX_X) { mCursorX = MAP_MAX_X; }
break;
default:
handled = false;
if (handled) {
redrawCursorno();
return true;
}
return super.onKeyDown(keyCode,event);
}
Meine Klasse wie folgt aussieht:
public class Map extends Activity implements OnClickListener, SurfaceHolder.Callback, OnTouchListener {
Ich muss zugeben, Ich wusste nicht, warum die @ Override und die erste "Super" -Linie da waren, sie waren einfach in all den Routinen, die ich betrachtete. Wenn das super.onKeyDown das onKeyDown für die Aktivität ausführt, dann will ich es wahrscheinlich nicht am Anfang, nur am Ende, wenn meine Routine es nicht behandelt, was ich denke, was ich hinzugefügt habe. Klingt das richtig, oder bin ich immer noch verwirrt?
-Frink
versuchen Sie dies auf einer Webansicht? – Sephy
Geben Sie Ihren Code ein. – Falmarri