简体   繁体   中英

Handle onBackPressed in android in fragment

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();
    }

}

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.

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();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM