2017-05-25 87 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);