按物理后退按钮转到上一个片段

Go to previous fragment pressing physical back button

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

试试这个

@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() > 0 ){
        getFragmentManager().popBackStack();
    } else {
        super.onBackPressed();
    }
}
    '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);