-2

I want to handle onBackPressed in fragment

I use following code in my activity but this return 0

@Override
    public void onBackPressed() {

    int count = getFragmentManager().getBackStackEntryCount();

    Toast.makeText(getBaseContext(), ""+count, Toast.LENGTH_SHORT).show();
    if (count == 1) {
        super.onBackPressed();
        //additional code
    } else {
        getFragmentManager().popBackStack();
    }

}
Asteroid
  • 718
  • 7
  • 21

2 Answers2

0

Just add .addToBackStack(null) in your Activity or Fragment . When you adding or replacing fragment. Like below

 getSupportFragmentManager().beginTransaction().replace(R.id.parent_layout, new MyFragment()).addToBackStack(null).commit();

Note:- you don't have to do anything in your onBackPressed() method.

sushildlh
  • 8,986
  • 4
  • 33
  • 77
0
Just app this line when you want to replace any fragment and manage backsack on Fragment.

ClientHome per = new ClientHome();
                Bundle bundle = new Bundle();
                bundle.putString("usertype", "client");
                per.setArguments(bundle);
                FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.setCustomAnimations(R.anim.slide_from_left, R.anim.slide_to_right);
                fragmentTransaction.replace(R.id.content_frame, per, "tag");
                fragmentTransaction.addToBackStack("tag");
                fragmentTransaction.commit();
Rahul Kushwaha
  • 5,473
  • 3
  • 26
  • 30