title: How to Implement Navigation Drawer
body: <p>I've followed the android developer website building the navigation drawer but can not seem to find out how to implement separate activities/fragments for each section. The code I have so far is below:</p>
  
  <pre><code>@Override
  public void onNavigationDrawerItemSelected(int position) {
      FragmentManager fragmentManager = getSupportFragmentManager();
      fragmentManager
              .beginTransaction()
              .replace(R.id.container,
                      PlaceholderFragment.newInstance(position + 1)).commit();
  }
  </code></pre>
  
  <p>When implementing the action bar tab menu the code I use is below:</p>
  
  <pre><code>@Override
      public Fragment getItem(int index) {
          switch (index) {
          case 0:
              return new FirstTabFragment();
          case 1:
              return new SecondTabFragment();
          case 2:
          }
          return null;
      }
  </code></pre>
  
  <p>I've tried about 20 different implementations of the 2nd example code to try and get it to work with the navigation drawer instead of actionbar tabs. Anyone who can point me in the right direction would be doing me a hige favour. </p>
  
  <p>The entire MainActivity.java file is below just in case that is of any use.</p>
  
  <pre><code>public class MainActivity extends ActionBarActivity implements
      NavigationDrawerFragment.NavigationDrawerCallbacks {
  
  
  private NavigationDrawerFragment mNavigationDrawerFragment;
  
  
  private CharSequence mTitle;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager()
              .findFragmentById(R.id.navigation_drawer);
      mTitle = getTitle();
  
      mNavigationDrawerFragment.setUp(R.id.navigation_drawer,
              (DrawerLayout) findViewById(R.id.drawer_layout));
  }
  
  @Override
  public void onNavigationDrawerItemSelected(int position) {
      FragmentManager fragmentManager = getSupportFragmentManager();
      fragmentManager
              .beginTransaction()
              .replace(R.id.container,
                      PlaceholderFragment.newInstance(position + 1)).commit();
  }
  
  public void onSectionAttached(int number) {
      switch (number) {
      case 1:
          mTitle = getString(R.string.title_section1);
          break;
      case 2:
          mTitle = getString(R.string.title_section2);
          break;
      case 3:
          mTitle = getString(R.string.title_section3);
          break;
      case 4:
          mTitle = getString(R.string.title_section4);
          break;
      case 5:
          mTitle = getString(R.string.title_section5);
          break;
      case 6:
          mTitle = getString(R.string.title_section6);
          break;
      case 7:
          mTitle = getString(R.string.title_section7);
          break;
      case 8:
          mTitle = getString(R.string.title_section8);
          break;
      case 9:
          mTitle = getString(R.string.title_section9);
          break;
      case 10:
          mTitle = getString(R.string.title_section10);
          break;
      }
  }
  
  public void restoreActionBar() {
      ActionBar actionBar = getSupportActionBar();
      actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
      actionBar.setDisplayShowTitleEnabled(true);
      actionBar.setTitle(mTitle);
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      if (!mNavigationDrawerFragment.isDrawerOpen()) {
  
          getMenuInflater().inflate(R.menu.main, menu);
          restoreActionBar();
          return true;
      }
      return super.onCreateOptionsMenu(menu);
  }
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
      int id = item.getItemId();
      if (id == R.id.action_settings) {
          return true;
      }
      return super.onOptionsItemSelected(item);
  }
  
  public static class PlaceholderFragment extends Fragment {
  
      private static final String ARG_SECTION_NUMBER = "section_number";
  
      public static PlaceholderFragment newInstance(int sectionNumber) {
          PlaceholderFragment fragment = new PlaceholderFragment();
          Bundle args = new Bundle();
          args.putInt(ARG_SECTION_NUMBER, sectionNumber);
          fragment.setArguments(args);
          return fragment;
      }
  
      public PlaceholderFragment() {
      }
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
          View rootView = inflater.inflate(R.layout.fragment_main, container,
                  false);
          TextView textView = (TextView) rootView
                  .findViewById(R.id.section_label);
          textView.setText(Integer.toString(getArguments().getInt(
                  ARG_SECTION_NUMBER)));
          return rootView;
      }
  
      @Override
      public void onAttach(Activity activity) {
          super.onAttach(activity);
          ((MainActivity) activity).onSectionAttached(getArguments().getInt(
                  ARG_SECTION_NUMBER));
      }
  }
  </code></pre>
  
  <p>}</p>