Es ist ganz einfach: Sie haben eine Aktivität A und machen 3 Fragmente wie B, C und D. Wenn Sie nun in Fragment B oder C sind und onBackPressed
Sie wollen sich jedes Mal auf Fragment D bewegen, dann müssen Sie einfach die onBackPressed()
Methode in der Hauptaktivität A und auch wenn Sie zu einem beliebigen Fragment springen, übergeben Sie eine TAG oder Name des Fragments, an dem Sie das Fragment in der Haupttätigkeit A erkannt haben.
Ich gebe ein Beispiel, an dem Sie leicht verstehen können, dass....
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().add(R.id.container, new C_fragment(),"xyz").commit();
}
oder wenn Sie sich von Fragment B nach Fragment C bewegen... und beim Zurückdrücken auf Fragment D kommen wollen... wie unten
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.container, new C_frament(), "xyz").commit();
((ActionBarActivity) getActivity()).getSupportActionBar().setTitle("Fragment C");
}
});
Jetzt müssen Sie nur die onBackPressed()-Methode in der Hauptaktivität überschreiben....like below..
@Override
public void onBackPressed() {
FragmentManager fragmentManager =getSupportFragmentManager();
if (((C_fragment) getSupportFragmentManager().findFragmentByTag("xyz")) != null && ((C_fragment) getSupportFragmentManager().findFragmentByTag("xyz")).isVisible()) {
Fragment fragment = new D_Fragment();
fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
getSupportActionBar().setTitle("D fragment ");
} else {
super.onBackPressed();
}
}