How to Handle backPress with Fragment

2019-01-09 13:15发布

i have Fragment Activity With contatin navigation drawer.after clicking navigation drawer item it open a Fragment 1, fragment 2, Fragment 3.and then after button click event in Fragment 1 open new Fragment 4.

i want handle back key press event how can i do this on Fragment 4?after clicking back key in Fragment 4 i want to go back Fragment 1.

enter image description here

3条回答
叼着烟拽天下
2楼-- · 2019-01-09 13:51

Add Fragments To BackStack. Before commit() the transaction, use addToBackStack() method i.e

 addToBackStack("Some String").commit();

and in onBackPressed()

@Override 
public void onBackPressed() { 
    if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
        getSupportFragmentManager().popBackStack(); 
    } else { 
        this.finish(); 
    }
}
查看更多
冷血范
3楼-- · 2019-01-09 14:01

Override onBackPress() method and check that your fragement manager has backStack entry>0 if it has greater than 0 than do popback stack otherwise finish your activity..

if(getFramentManager().getBackStackEntryCount()>0){
      // popback statck.
}
 else{
     // finish your activity.
 }

don't forget to add your fragement to BackStack to maintain fragment hierarchy..

fragTransacion.addToBackStack(TAG);
查看更多
时光不老,我们不散
4楼-- · 2019-01-09 14:14

Your code for adding fragment to backstack should be like:

getFragmentManager() .beginTransaction() .replace(R.id.content_frame, Entry_Account.newInstance(), Entry_Account.TAG).addToBackStack("Some string") .commit();

Then On Activity's onBackPressed method,use this snippet:

@Override
public void onBackPressed () {
if(getFramentManager().getBackStackEntryCount()>0){
      // popback statck.
}
 else{
     // finish your activity.
 }
}
查看更多
登录 后发表回答