Это просто, если у вас есть задание A и вы делаете 3 фрагмента, таких как B, C и D. Теперь, если вы находитесь во фрагменте B или C и onBackPressed
, вы хотите переходить на фрагмент D каждый раз.просто переопределить метод onBackPressed()
в основном упражнении A, а также при переходе к любому фрагменту затем передать TAG или имя того фрагмента, по которому вы узнали этот фрагмент в основном упражнении A.
Я привожу пример того, с помощью которого вы можете легко понять, что ....
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().add(R.id.container, new C_fragment(),"xyz").commit();
}
или если вы переходите от фрагмента B к фрагменту C ... и при обратном нажатии вы хотитепереходите к фрагменту D ... как показано ниже
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");
}
});
Теперь вам нужно просто переопределить метод onBackPressed () в основной деятельности .... как показано ниже ..
@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();
}
}