2013-07-23 76 views
0

從主片段我打開VideoPlayerFragment,在VideoPlayerFragment中,當我按下按鈕時,它應該回到父片段。Android - Fragment 2顯示回主片段與活動

CollectionDemoActivity{ 

class LaunchpadSectionFragment extends ListFragments{ 

public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

String fragMainGroups = "mainGroups"; 


        Fragment fragment1 = new VideoPlayerFragment(); 

        FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
        transaction.replace(R.id.contentFragment, fragment1, fragMainGroups); 
        transaction.addToBackStack(fragMainGroups); 
        transaction.commit(); 

     } 
    } 
} 

外部類

VideoPlayerFragment.java

類VideoPlayerFragment延伸ListFragment {

  @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 

          String Groups = "Groups"; 

          Fragment fragment1 = new CollectionDemoActivity.LaunchpadSectionFragment(); 

          FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
          transaction.replace(R.layout.load_main_groups_activty, fragment1, Groups); 
          transaction.addToBackStack(Groups); 
          transaction.commit(); 

      } 

}

回答

0

我必須使用下面的代碼來使用它的片段標記從backstack打開前一個片段。

String fragMainGroups = "mainGroups"; 
          String Groups = "Groups"; 

          Fragment fragment = (Fragment) getFragmentManager().findFragmentByTag(fragMainGroups);            


          if (fragment != null) // could be null if not instantiated yet 
          { 
           if (fragment.getView() != null) { 
            // Pop the backstack on the ChildManager if there is any. If not, close this activity as normal. 
            if (!fragment.getFragmentManager().popBackStackImmediate()) { 
             fragment.getFragmentManager().popBackStack(); 
             //getActivity().finish(); 
            } 
           } 
          }