2017-05-25 88 views
0

我已经创建了一个显示gridview的片段,并且当任何griditem被点击时它会转到另一个片段。但是当我按下物理按钮时,应用程序关闭而不是返回到前一个片段(即包含gridview的片段)。我该如何解决这个问题?转到上一个片段按物理后退按钮

+0

指https://stackoverflow.com/questions/7992216/android-fragment-handle-back-button-press – sasikumar

+0

的可能的复制[如何实现onBackPressed( )在碎片?](https://stackoverflow.com/questions/5448653/how-to-implement-onbackpressed-in-fragments) – thepoosh

回答

1

试试这个

@Override 
public void onBackPressed() { 
    if (getFragmentManager().getBackStackEntryCount() > 0){ 
     getFragmentManager().popBackStack(); 
    } else { 
     super.onBackPressed(); 
    } 
} 
+0

谢谢。有效。 –

0
'addToBackStack' is used for moving back to previous fragment, you can use a common Function 

    in your Main activity for changing fragment. 




public void change_fragment(Fragment fragment, int frame) { 


    FragmentManager manager = getSupportFragmentManager(); 
    FragmentTransaction trans = manager.beginTransaction(); 
    //trans.setCustomAnimations(R.anim.enterfrom_left, R.anim.exit_to_right,R.anim.enterfrom_left, R.anim.exit_to_right); 
    trans.replace(frame, fragment); 
    trans.addToBackStack("hai" + frame); 
    trans.commit(); 


    } 



    you can call it from Main activity like this 

    change_fragment(new Frag(),R.id.fl_main_frag_container); 



    you can call it from another fragment like this 

    ((MainActivity)getContext()).change_fragment(new Frag(), R.id.fl_main_frag_container);