Ich habe eine Aktivität, die ein Fragment onCreate lädt. Und ich habe eine Toolbar für diese Aktivität, die eine Schaltfläche hat, die, wenn sie angeklickt wird, ein neues Fragment über demjenigen, das zuerst erstellt wurde, hinzufügt.Symbolleisten-Zurück-Schaltfläche schließt nicht aktuelles Fragment
Jetzt auf dieser Symbolleiste, wenn ich klicke, möchte ich das neuere Fragment entfernen, so dass es nur das Fragment, das in der unteren (älteren) ist, verschiebt. Ich habe gesucht und ich habe es bis auf eine Sache herausgefunden.
Ich tat dies, so dass es zu sehen versucht, wenn die Symbolleiste Taste gedrückt wird:
@Override
public boolean onKeyUp(int keyCode, KeyEvent objEvent) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
return true;
}
return super.onKeyUp(keyCode, objEvent);
}
@Override
public void onBackPressed() {
FragmentManager mFM = getSupportFragmentManager();
if(mFM.findFragmentByTag("NewFragment") != null){
mFM.beginTransaction().remove(mFM.findFragmentByTag("NewFragment")).commit();
}
}
Das Problem ist, „keyCode“ gleich ist nur KEYCODE_BACK, wenn Sie die „Zurück-Button Hardware“ klicken und nicht die Zurück-Schaltfläche der Symbolleiste. Was es mir gibt ist Keycode 58 und nicht 4 (KEYCODE_BACK).
warum mit '58' keycode .. so etwas wie' if (keyCode eine 'or' Anweisung nicht hinzufügen = = KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.XY) ... ' – user0815