title: How to add tabhost with navigation drawer?
body: <p>I am new to android development,I used navigation drawer from this <a href="http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/" rel="nofollow">http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/</a> </p>
  
  <p>Now I want to add Tabhost with it..can anyone help me with this?
  The following is my code I tried..I do not know It is not showing why..</p>
  
  <pre><code>   public class MainActivity extends FragmentActivity {
        private DrawerLayout mDrawerLayout;
        private ListView mDrawerList;
        private ActionBarDrawerToggle mDrawerToggle;
  
       // nav drawer title
        private CharSequence mDrawerTitle;
  
      // used to store app title
       private CharSequence mTitle;
  
       // slide menu items
  
       private String[] navMenuTitles;
       private TypedArray navMenuIcons;
  
       private ArrayList&lt;NavDrawerItem&gt; navDrawerItems;
       private NavDrawerListAdapter adapter;
  
       @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          mTitle = mDrawerTitle = getTitle();
  
          // load slide menu items
          navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
  
          // nav drawer icons from resources
          navMenuIcons = getResources()
                  .obtainTypedArray(R.array.nav_drawer_icons);
  
          mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
          mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
  
          navDrawerItems = new ArrayList&lt;NavDrawerItem&gt;();
          // adding nav drawer items to array
          // Home
          navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons
                  .getResourceId(0, -1)));
          // Find People
          navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons
                  .getResourceId(1, -1)));
          // Photos
          navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons
                  .getResourceId(2, -1)));
          // Communities, Will add a counter here
          navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons
                  .getResourceId(3, -1)));
          // Pages
          navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons
                  .getResourceId(4, -1)));
          // What's hot, We will add a counter here
          navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons
                  .getResourceId(5, -1)));
  
          // Recycle the typed array
          navMenuIcons.recycle();
  
          mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
  
          // setting the nav drawer list adapter
          adapter = new NavDrawerListAdapter(getApplicationContext(),
                  navDrawerItems);
          mDrawerList.setAdapter(adapter);
  
          // enabling action bar app icon and behaving it as toggle button
          getActionBar().setDisplayHomeAsUpEnabled(false);
          getActionBar().setHomeButtonEnabled(true);
  
          mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                  R.drawable.ic_drawer, // nav menu toggle icon
                  R.string.app_name, // nav drawer open - description for
                                      // accessibility
                  R.string.app_name // nav drawer close - description for
                                      // accessibility
          ) {
              public void onDrawerClosed(View view) {
                  getActionBar().setTitle(mTitle);
                  // calling onPrepareOptionsMenu() to show action bar icons
                  getActionBar().setIcon(R.drawable.ic_drawer);
                  invalidateOptionsMenu();
              }
  
              public void onDrawerOpened(View drawerView) {
                  getActionBar().setTitle(mDrawerTitle);
                  // calling onPrepareOptionsMenu() to hide action bar icons
                  getActionBar().setIcon(R.drawable.ic_drawer);
                  invalidateOptionsMenu();
              }
          };
          mDrawerLayout.setDrawerListener(mDrawerToggle);
  
          if (savedInstanceState == null) {
              // on first time display view for first nav item
              displayView(0);
          }
      }
  
  private class SlideMenuClickListener implements
          ListView.OnItemClickListener {
      @Override
      public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position,
              long id) {
          // display view for selected nav drawer item
          displayView(position);
      }
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
  }
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
      // toggle nav drawer on selecting action bar app icon/title
      if (mDrawerToggle.onOptionsItemSelected(item)) {
          return true;
      }
      // Handle action bar actions click
      switch (item.getItemId()) {
      case R.id.action_settings:
          return true;
  
      default:
          return super.onOptionsItemSelected(item);
      }
  }
  
  /* *
   * Called when invalidateOptionsMenu() is triggered
   */
  @Override
  public boolean onPrepareOptionsMenu(Menu menu) {
      // if nav drawer is opened, hide the action items
      boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
      menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
      return super.onPrepareOptionsMenu(menu);
  }
  
  /**
   * Diplaying fragment view for selected nav drawer list item
   * */
  private void displayView(int position) {
      // update the main content by replacing fragments
      Fragment fragment = null;
      switch (position) {
      case 0:
          fragment = new HomeFragment();
          break;
     /* case 1:
          fragment = new FindPeopleFragment();
          break;
      case 2:
          fragment = new PhotosFragment();
          break;
      case 3:
          fragment = new CommunityFragment();
          break;
      case 4:
          fragment = new PagesFragment();
          break;
      case 5:
          fragment = new WhatsHotFragment();
          break;
      */
      default:
          break;
      }
  
      if (fragment != null) {
          FragmentManager fragmentManager = getSupportFragmentManager();
          fragmentManager.beginTransaction()
                  .replace(R.id.frame_container, fragment).commit();
  
          // update selected item and title, then close the drawer
          mDrawerList.setItemChecked(position, true);
          mDrawerList.setSelection(position);
          setTitle(navMenuTitles[position]);
          mDrawerLayout.closeDrawer(mDrawerList);
      } else {
          // error in creating fragment
          Log.e("MainActivity", "Error in creating fragment");
      }
  }
  
  @Override
  public void setTitle(CharSequence title) {
      mTitle = title;
      getActionBar().setTitle(mTitle);
  }
  
  /**
   * When using the ActionBarDrawerToggle, you must call it during
   * onPostCreate() and onConfigurationChanged()...
   */
  
  @Override
  protected void onPostCreate(Bundle savedInstanceState) {
      super.onPostCreate(savedInstanceState);
      // Sync the toggle state after onRestoreInstanceState has occurred.
      mDrawerToggle.syncState();
  }
  
  @Override
  public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
      // Pass any configuration change to the drawer toggls
      mDrawerToggle.onConfigurationChanged(newConfig);
  }
  
  }
  </code></pre>
  
  <p>Homefragment</p>
  
  <pre><code>public class HomeFragment extends Fragment {
  
  
  private FragmentTabHost mTabHost;
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  mTabHost = new FragmentTabHost(getActivity());
  mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.fragment_home);
  
  Bundle arg1 = new Bundle();
  arg1.putInt("Arg for Frag1", 1);
  mTabHost.addTab(mTabHost.newTabSpec("Tab1").setIndicator("Frag Tab1"),
      PhotosActivity.class, arg1);
  
  Bundle arg2 = new Bundle();
  arg2.putInt("Arg for Frag2", 2);
  mTabHost.addTab(mTabHost.newTabSpec("Tab2").setIndicator("Frag Tab2"),
      PhotosActivity.class, arg2);
  
  return mTabHost;
  }
  
  @Override
  public void onDestroyView() {
  super.onDestroyView();
  mTabHost = null;
  }
  </code></pre>
  
  <p>fragment_home.xml</p>
  
  <pre><code>     &lt;TabHost xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
        android:id="@android:id/tabhost"&gt;
  
      &lt;LinearLayout 
              android:id="@+id/LinearLayout01"
              android:orientation="vertical" 
              android:layout_height="fill_parent"
              android:layout_width="fill_parent"&gt;
  
              &lt;TabWidget 
                  android:id="@android:id/tabs"
                  android:layout_height="wrap_content" 
                  android:layout_width="fill_parent"&gt;
              &lt;/TabWidget&gt;
              &lt;android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" /&gt;
  
              &lt;FrameLayout 
                  android:id="@android:id/tabcontent"
                  android:layout_height="fill_parent"
                   android:layout_width="fill_parent"&gt;
              &lt;/FrameLayout&gt;
  
      &lt;/LinearLayout&gt;
  
      &lt;/TabHost&gt;
  </code></pre>