title: TabGroupActivity - startChildActivity - not working
body: <p>I have been using <code>TabActivity</code> and I want the tab to display on every child activity. I have flow like this <code>MainActivity(TabActivity)</code> -> <code>TabGroupActivity1(TabGroupActivity)</code> -> <code>Activity1</code> -> <code>Activity2</code> </p>
  
  <p>Now i want to redirect on Activity2 only if the flag is true. so that my code for that is something like bellow.</p>
  
  <pre><code>TabGroupActivity
  
      public class TabGroupActivity extends ActivityGroup {
  
      private ArrayList&lt;String&gt; mIdList;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);       
          if (mIdList == null) mIdList = new ArrayList&lt;String&gt;();
      }
  
      /**
       * This is called when a child activity of this one calls its finish method. 
       * This implementation calls {@link LocalActivityManager#destroyActivity} on the child activity
       * and starts the previous activity.
       * If the last child activity just called finish(),this activity (the parent),
       * calls finish to finish the entire group.
       */
    @Override
    public void finishFromChild(Activity child) {
        LocalActivityManager manager = getLocalActivityManager();
        int index = mIdList.size()-1;
  
        if (index &lt; 1) {
            finish();
            return;
        }
  
        manager.destroyActivity(mIdList.get(index), true);
        mIdList.remove(index); index--;
        String lastId = mIdList.get(index);
        Intent lastIntent = manager.getActivity(lastId).getIntent();
        Window newWindow = manager.startActivity(lastId, lastIntent);
        setContentView(newWindow.getDecorView());
    }
  
    /**
     * Starts an Activity as a child Activity to this.
     * @param Id Unique identifier of the activity to be started.
     * @param intent The Intent describing the activity to be started.
     * @throws android.content.ActivityNotFoundException.
     */
    public void startChildActivity(String Id, Intent intent) {     
        Window window = getLocalActivityManager().startActivity(Id,intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
        if (window != null) {
            mIdList.add(Id);
            setContentView(window.getDecorView()); 
        }    
    }
  
    /**
     * The primary purpose is to prevent systems before android.os.Build.VERSION_CODES.ECLAIR
     * from calling their default KeyEvent.KEYCODE_BACK during onKeyDown.
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
  
    /**
     * Overrides the default implementation for KeyEvent.KEYCODE_BACK 
     * so that all systems call onBackPressed().
     */
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            onBackPressed();
            return true;
        }
        return super.onKeyUp(keyCode, event);
    }
  
    /**
     * If a Child Activity handles KeyEvent.KEYCODE_BACK.
     * Simply override and add this method.
     */
    @Override
    public void  onBackPressed  () {
        int length = mIdList.size();
        if ( length &gt; 1) {
            Activity current = getLocalActivityManager().getActivity(mIdList.get(length-1));
            current.finish();
        }  
    }
  }
  </code></pre>
  
  <p>now code for <code>TabGroupActvity1</code></p>
  
  <pre><code>public class TabGroupActyvity1 extends TabGroupActivity {
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          startChildActivity("OptionsActivity", new Intent(this,Activity1.class));
      }
  
  
  }
  </code></pre>
  
  <p>now in <code>Activity1</code></p>
  
  <pre><code>@Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
  
          if(flag){
              TabGroupActivity parentActivity = (TabGroupActivity)getParent();
              Intent previewMessage = new Intent(parentActivity, Activity2.class);
              parentActivity.startChildActivity("Activity2", previewMessage);
          }else{
              setContentView(R.layout.row);
              //... 
          }
      }
  </code></pre>
  
  <p>this is not working, </p>
  
  <p>the same code the one in bellow works in some click event but not working in my case</p>
  
  <pre><code>TabGroupActivity parentActivity = (TabGroupActivity)getParent();
  Intent previewMessage = new Intent(parentActivity, Activity2.class);
  parentActivity.startChildActivity("Activity2", previewMessage);
  </code></pre>
  
  <p>please give some suggestion how to do this.
  have I explain the problem well... do I need to add some more details?</p>