title: How to solve for viewpager : The specified child already has a parent. You must call removeView() on the child's parent first
body: <p>Into my project I am using viewpager with three tabs named <code>History</code>,<code>Main</code>,<code>Map</code>.<strong>Main</strong> activity contain Timer,stopwatch,etc. <strong>Map</strong> display the google map. and  into <strong>History</strong> right now I am using only simple Textview.</p>
  
  <p>Viewpager flow direction : <strong>History</strong>  - <strong>Main</strong> - <strong>Map</strong></p>
  
  <p>I set the Main as the current item(Bydefault Main tag display).Now when I am swipe from <strong>Main</strong> > <strong>Map</strong> and <strong>Map</strong> > <strong>Main</strong> its working perfect. but when swipe from <strong>Main</strong> > <strong>History</strong>  there is no error but back return from <strong>History</strong> to <strong>Main</strong>( <strong>History</strong> > <strong>Main</strong>) eclipse give me error like : </p>
  
  <pre><code>E/AndroidRuntime(  533): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
  </code></pre>
  
  <p>And FYI I am using <code>intent into Map Activity</code>.Please check below code.Please let me know how can solve my problem.</p>
  
  <p><strong>ViewPager class:</strong></p>
  
  <pre><code>@Override
      public Fragment getItem(int position) {
          // return SwipeyTabFragment.newInstance(TITLES[position]);
  
          Fragment f = new Fragment();
  
          switch (position) {
          case 0:
              f = History.newInstance(position);
              break;
          case 1:
              f = Main.newInstance(position);
              break;
          case 2:
              f = Map.newInstance(position);
              break;
  
          }
  
          return f;
  
      }
  </code></pre>
  
  <p><strong>History.class:</strong></p>
  
  <pre><code>public class History extends Fragment {
  
  public static Fragment newInstance(int position) {
      History f = new History();
      Bundle args = new Bundle();
  
      args.putInt("title", position);
      f.setArguments(args);
      return f;
  
  }
  
   @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
      ViewGroup root = (ViewGroup) inflater.inflate(R.layout.history, null);
  
  
       ( (TextView) root.findViewById(R.id.text)).setText("Hello");
      return root;
  } 
  
  }
  </code></pre>
  
  <p><strong>Main.class :</strong></p>
  
  <pre><code> public class Main extends Fragment implements GPSCallback {
  
   ......
  
  public static Fragment newInstance(int position) {
      Main f = new Main();
      Bundle args = new Bundle();
  
      args.putInt("title", position);
      f.setArguments(args);
      return f;
  
  }
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
  
      final ViewGroup root = (ViewGroup) inflater
              .inflate(R.layout.main, null);
  
      .......
  
      return root;
   }
  
      ........
  }
  </code></pre>
  
  <p><strong>Map.class :</strong></p>
  
  <pre><code>public class Map extends Fragment {
  
  private static final String KEY_STATE_BUNDLE = "localActivityManagerState";
  
  private LocalActivityManager mLocalActivityManager;
  
  protected LocalActivityManager getLocalActivityManager() {
      return mLocalActivityManager;
  }
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      Bundle state = null;
      if (savedInstanceState != null) {
          state = savedInstanceState.getBundle(KEY_STATE_BUNDLE);
      }
  
      mLocalActivityManager = new LocalActivityManager(getActivity(), true);
      mLocalActivityManager.dispatchCreate(state);
  }
  
  
  
  public static Fragment newInstance(int position) {
      Map f = new Map();
      Bundle args = new Bundle();
  
      args.putInt("title", position);
      f.setArguments(args);
      return f;
  
  }
  
  
    @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
  
          Intent i = new Intent(getActivity(), MapViewActivity.class);
         // Intent i = new Intent(getActivity(), hellogooglemap.class);
          Window w = mLocalActivityManager.startActivity("tag", i); 
  
          View currentView=w.getDecorView(); 
          currentView.setVisibility(View.VISIBLE); 
          currentView.setFocusableInTouchMode(true); 
          ((ViewGroup) currentView).setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
          return currentView;
  
  
        /*ViewGroup root = (ViewGroup) inflater.inflate(R.layout.history, null);
  
  
           ( (TextView) root.findViewById(R.id.text)).setText("Hello");
          return root;*/
  
  }
  
  
   @Override
      public void onSaveInstanceState(Bundle outState) {
          super.onSaveInstanceState(outState);
          outState.putBundle(KEY_STATE_BUNDLE,
                  mLocalActivityManager.saveInstanceState());
      }
  
      @Override
      public void onResume() {
          super.onResume();
          mLocalActivityManager.dispatchResume();
      }
  
      @Override
      public void onPause() {
          super.onPause();
          mLocalActivityManager.dispatchPause(getActivity().isFinishing());
      }
  
      @Override
      public void onStop() {
          super.onStop();
          mLocalActivityManager.dispatchStop();
      }
  
      @Override
      public void onDestroy() {
          super.onDestroy();
          mLocalActivityManager.dispatchDestroy(getActivity().isFinishing());
      }
  
  }
  </code></pre>
  
  <p>Logcat :</p>
  
  <pre><code> E/AndroidRuntime(  533): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
   E/AndroidRuntime(  533):   at android.view.ViewGroup.addViewInner(ViewGroup.java:1976)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.addView(ViewGroup.java:1871)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.addView(ViewGroup.java:1828)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.addView(ViewGroup.java:1808)
   E/AndroidRuntime(  533):   at android.support.v4.app.NoSaveStateFrameLayout.wrap(NoSaveStateFrameLayout.java:40)
   E/AndroidRuntime(  533):   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:874)
   E/AndroidRuntime(  533):   at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1240)
   E/AndroidRuntime(  533):   at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:612)
   E/AndroidRuntime(  533):   at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
   E/AndroidRuntime(  533):   at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
   E/AndroidRuntime(  533):   at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:139)
   E/AndroidRuntime(  533):   at android.support.v4.view.ViewPager.populate(ViewPager.java:804)
   E/AndroidRuntime(  533):   at android.support.v4.view.ViewPager.completeScroll(ViewPager.java:1280)
   E/AndroidRuntime(  533):   at android.support.v4.view.ViewPager.computeScroll(ViewPager.java:1176)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.drawChild(ViewGroup.java:1562)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
   E/AndroidRuntime(  533):   at android.view.View.draw(View.java:6883)
   E/AndroidRuntime(  533):   at android.widget.FrameLayout.draw(FrameLayout.java:357)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
   E/AndroidRuntime(  533):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
   E/AndroidRuntime(  533):   at android.view.View.draw(View.java:6883)
   E/AndroidRuntime(  533):   at android.widget.FrameLayout.draw(FrameLayout.java:357)
   E/AndroidRuntime(  533):   at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1862)
   E/AndroidRuntime(  533):   at android.view.ViewRoot.draw(ViewRoot.java:1522)
   E/AndroidRuntime(  533):   at android.view.ViewRoot.performTraversals(ViewRoot.java:1258)
   E/AndroidRuntime(  533):   at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
   E/AndroidRuntime(  533):   at android.os.Handler.dispatchMessage(Handler.java:99)
   E/AndroidRuntime(  533):   at android.os.Looper.loop(Looper.java:130)
   E/AndroidRuntime(  533):   at android.app.ActivityThread.main(ActivityThread.java:3683)
   E/AndroidRuntime(  533):   at java.lang.reflect.Method.invokeNative(Native Method)
   E/AndroidRuntime(  533):   at java.lang.reflect.Method.invoke(Method.java:507)
   E/AndroidRuntime(  533):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
   E/AndroidRuntime(  533):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
   E/AndroidRuntime(  533):   at dalvik.system.NativeStart.main(Native Method)
   W/ActivityManager(   68):   Force finishing activity      com.android.gps/.viewpager.SwipeyTabsSampleActivity
   W/ActivityManager(   68): Activity pause timeout for HistoryRecord{40716740 com.android.gps/.viewpager.SwipeyTabsSampleActivity}
  </code></pre>
  
  <p>Thanks.</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>Without intent into Map activity it works pwrfect.I mean when i am using same as history into map there is no any error.</p>