title: Android facebook tutorial - after login fragment not displaying
body: <p>I have followed the Facebook android tutorial as far as I can tell line for line for Login authentication. however, I am having issues. When I hav elogge din my "you are now logged in" fragment is never show. I believe this  to be with the showFragment method. please find it below:</p>
  
  <pre><code>private void showFragment(int fragmentIndex, boolean addToBackStack) {
      FragmentManager fm = getSupportFragmentManager();
      FragmentTransaction transaction = fm.beginTransaction();
      for (int i = 0; i &lt; fragments.length; i++) {
          if (i == fragmentIndex) {
              transaction.show(fragments[i]);
          } else {
              transaction.hide(fragments[i]);
          }
      }
      if (addToBackStack) {
          transaction.addToBackStack(null);
      }
      transaction.commit();
  }
  </code></pre>
  
  <p>when putting a sys.out in it, fragmentIndex is also 0, and therefore my else fragment is never displayed. Is there something obvious I am missing?  Any help would be greatly appreciated.</p>
  
  <p>Please find the rest of the class and the XML just incase: </p>
  
  <pre><code>package com.example.social;
  
  import android.content.Intent;
  import android.os.Bundle;
  import android.support.v4.app.Fragment;
  import android.support.v4.app.FragmentActivity;
  import android.support.v4.app.FragmentManager;
  import android.support.v4.app.FragmentTransaction;
  import android.view.Menu;
  import android.view.MenuItem;
  
  import com.facebook.Session;
  import com.facebook.SessionState;
  import com.facebook.UiLifecycleHelper;
  
  
  
  public class DashBoard extends FragmentActivity {
  
  private static final int SPLASH = 0;
  private static final int SELECTION = 1;
  private static final int FRAGMENT_COUNT = SELECTION + 1;
  private boolean isResumed = false;
  
  private Fragment[] fragments = new Fragment[FRAGMENT_COUNT];
  
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      uiHelper = new UiLifecycleHelper(this, callback);
      uiHelper.onCreate(savedInstanceState);
  
      setContentView(R.layout.activity_dash_board);
  
      FragmentManager fm = getSupportFragmentManager();
      fragments[SPLASH] = fm.findFragmentById(R.id.splashFragment);
      fragments[SELECTION] = fm.findFragmentById(R.id.selectionFragment);
  
      FragmentTransaction transaction = fm.beginTransaction();
      for (int i = 0; i &lt; fragments.length; i++) {
          transaction.hide(fragments[i]);
      }
      transaction.commit();
  }
  
  private void showFragment(int fragmentIndex, boolean addToBackStack) {
      FragmentManager fm = getSupportFragmentManager();
      FragmentTransaction transaction = fm.beginTransaction();
      for (int i = 0; i &lt; fragments.length; i++) {
          if (i == fragmentIndex) {
              transaction.show(fragments[i]);
          } else {
              transaction.hide(fragments[i]);
          }
      }
      if (addToBackStack) {
          transaction.addToBackStack(null);
      }
      transaction.commit();
  }
  
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
  }
  
  public void facebookIntent(MenuItem item) {
      startActivity(new Intent(this, Facebook.class));
  
  }
  
  public void twitterIntent(MenuItem item) {
      startActivity(new Intent(this, Twitter.class));
  
  }
  
  public void dashboardIntent(MenuItem item) {
      startActivity(new Intent(this, DashBoard.class));
  
  }
  
  public void redditIntent(MenuItem item) {
      startActivity(new Intent(this, Reddit.class));
  
  }
  
  @Override
  public void onResume() {
      super.onResume();
      isResumed = true;
      uiHelper.onResume();
  
  }
  
  @Override
  public void onPause() {
      super.onPause();
      uiHelper.onPause();
      isResumed = false;
  }
  
  private void onSessionStateChange(Session session, SessionState state,
          Exception exception) {
      // Only make changes if the activity is visible
      if (isResumed) {
          FragmentManager manager = getSupportFragmentManager();
          // Get the number of entries in the back stack
          int backStackSize = manager.getBackStackEntryCount();
          // Clear the back stack
          for (int i = 0; i &lt; backStackSize; i++) {
              manager.popBackStack();
          }
          if (state.isOpened()) {
              // If the session state is open:
              // Show the authenticated fragment
              showFragment(SELECTION, false);
          } else if (state.isClosed()) {
              // If the session state is closed:
              // Show the login fragment
              showFragment(SPLASH, false);
          }
      }
  }
  
  @Override
  protected void onResumeFragments() {
      super.onResumeFragments();
      Session session = Session.getActiveSession();
  
      if (session != null &amp;&amp; session.isOpened()) {
          // if the session is already open,
          // try to show the selection fragment
          showFragment(SELECTION, false);
      } else {
          // otherwise present the splash screen
          // and ask the person to login.
          showFragment(SPLASH, false);
      }
  }
  
  private UiLifecycleHelper uiHelper;
  private Session.StatusCallback callback = new Session.StatusCallback() {
      @Override
      public void call(Session session, SessionState state,
              Exception exception) {
          onSessionStateChange(session, state, exception);
      }
  };
  
  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      uiHelper.onActivityResult(requestCode, resultCode, data);
  }
  
  @Override
  public void onDestroy() {
      super.onDestroy();
      uiHelper.onDestroy();
  }
  
  @Override
  protected void onSaveInstanceState(Bundle outState) {
      super.onSaveInstanceState(outState);
      uiHelper.onSaveInstanceState(outState);
  }
  </code></pre>
  
  <p>}</p>
  
  <pre><code> &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="vertical"
      tools:context=".DashBoard" &gt;
  
      &lt;fragment
          android:id="@+id/selectionFragment"
          android:name="com.example.social.SelectionFragment"
          android:layout_width="match_parent"
          android:layout_height="match_parent" /&gt;
  
      &lt;fragment
          android:id="@+id/splashFragment"
          android:name="com.example.social.SplashFragment"
          android:layout_width="match_parent"
          android:layout_height="match_parent" /&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>