Ich versuche, einen Backstack zu implementieren, während Fragmente verwendet werden, aber wenn ich die Zurück-Schaltfläche verwende, werde ich immer wieder aus der App auf den Startbildschirm gebracht.Implementieren von Backstacks mit Fragmenten
Aktivität öffnet Fragment A; Fragment A hat eine anklickbare TextView, die Fragment B öffnet (das funktioniert). BACK sollte mich zu Fragment A zurückbringen, aber es bringt mich stattdessen zum Home-Bildschirm.
Hier ist die Forderung der Aktivität zur Öffnung des Fragments A in onCreate
:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment_layout_container, new FragmentLogin(), "fragment_login")
.addToBackStack("login_screen")
.commit();
Log.d("Back", getFragmentManager().getBackStackEntryCount() +" <- Entry Count at LoginActivity.onCreate");
An diesem Punkt der Log druckt 0 <- Entry Count at LoginActivity.onCreate
. Etwas, das ich dies getan haben von Druck 1.
falsch hält Dann hat das Fragment A dieses Zuhörer:
forgottenPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_layout_container, new FragmentForgottenPassword(), "fragment_password")
.addToBackStack("forgotten_password")
.commit();
Log.d("Back", getFragmentManager().getBackStackEntryCount() + " <- Entry Count at FragmentLogin.onCreateView.Listener");
}
});
Die Log hier druckt 1 <- Entry Count at FragmentLogin.onCreateView.Listener
. Hier arbeitet der Hörer und öffnet Fragment B - aber die Zurück-Taste bringt mich zurück zum Home-Bildschirm.