Advertisement
Guest User

MainActivity

a guest
Jul 9th, 2013
573
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.71 KB | None | 0 0
  1. package com.test.fragmentchildissue;
  2.  
  3. import android.os.Bundle;
  4. import android.support.v4.app.Fragment;
  5. import android.support.v4.app.FragmentActivity;
  6. import android.support.v4.app.FragmentManager;
  7. import android.support.v4.app.FragmentTransaction;
  8.  
  9. public class ChildFragmentManagerActivity extends FragmentActivity {
  10.  
  11.     FragmentManager fragmentManager;
  12.  
  13.     @Override
  14.     protected void onCreate(Bundle arg0) {
  15.  
  16.         super.onCreate(arg0);
  17.         setContentView(R.layout.activity_childfragmentmanager);
  18.         fragmentManager = getSupportFragmentManager();
  19.         setupFragment();
  20.     }
  21.  
  22.     private void setupFragment() {
  23.  
  24.         FragmentTransaction fragmentTransaction = fragmentManager
  25.                 .beginTransaction();
  26.         ParentFragment parentFragment1 = new ParentFragment();
  27.         Bundle args = new Bundle();
  28.         args.putString("text", "Hi I am Parent Fragment");
  29.         parentFragment1.setArguments(args);
  30.         fragmentTransaction.add(R.id.frameLayout, parentFragment1,
  31.                 parentFragment1.getClass().getSimpleName());
  32.         fragmentTransaction.commit();
  33.     }
  34.  
  35.     @Override
  36.     public void onBackPressed() {
  37.         int count = fragmentManager.getBackStackEntryCount();
  38.         if (count == 0) {
  39.             // get Current Fragment
  40.             Fragment currentFragment = fragmentManager
  41.                     .findFragmentByTag("ParentFragment");
  42.  
  43.             // get ChildFragmentManager
  44.             FragmentManager chilFragmentManager = currentFragment
  45.                     .getChildFragmentManager();
  46.  
  47.             int childFragmentsCount = chilFragmentManager
  48.                     .getBackStackEntryCount();
  49.  
  50.             // removing child fragments stack
  51.  
  52.             if (childFragmentsCount == 0) {
  53.                 super.onBackPressed();
  54.             } else {
  55.                 chilFragmentManager.popBackStack();
  56.             }
  57.         } else {
  58.             // removing replaced fragments stack
  59.             fragmentManager.popBackStack();
  60.         }
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement