title: android navigation drawer item click not working
body: <p>I'm using MaterialTabHost and NavigationView when i click on navigation drawer item but not working
  NavigationView im using example code
  Anyone help me fix
  My code here</p>
  
  <p>[enter image description here][1]</p>
  
  <p>I think i wrong in function replace frament </p>
  
  <p><strong>MainActivity.java</strong></p>
  
  <pre><code>public class MainActivity extends ActionBarActivity implements MaterialTabListener {
      private String TAG = MainActivity.class.getSimpleName();
      MaterialTabHost tabHost;
      ViewPager pager;
  
      ViewPagerAdapter adapter;
      private String[] tabs =  {"Home","Category","Favourite"};
      Toolbar toolbar;
      String strMessage;
      private AdView mAdView;
      private InterstitialAd mInterstitial;
      private String name, link;
      private ProgressDialog pDialog;
  
      private NavigationView navigationView;
      private DrawerLayout drawer;
      private View navHeader;
      private ImageView imgNavHeaderBg, imgProfile;
      private TextView txtName, txtWebsite;
      private FloatingActionButton fab;
  
  
  
      // index to identify current nav menu item
      public static int navItemIndex = 0;
  
      // tags used to attach the fragments
      private static final String TAG_HOME = "home";
      public static String CURRENT_TAG = TAG_HOME;
  
      // toolbar titles respected to selected nav menu item
      private String[] activityTitles;
  
      // flag to load home fragment when user presses back key
      private boolean shouldLoadHomeFragOnBackPress = true;
      private Handler mHandler;
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
  
              setContentView(R.layout.activity_main);
              toolbar = (Toolbar) this.findViewById(R.id.toolbar);
              toolbar.setTitle(getString(R.string.app_name));
              this.setSupportActionBar(toolbar);
  
              tabHost = (MaterialTabHost) this.findViewById(R.id.tabHost);
              pager = (ViewPager) this.findViewById(R.id.pager );
              adapter = new ViewPagerAdapter(getSupportFragmentManager());
              pager.setAdapter(adapter);
  
              pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                  @Override
                  public void onPageSelected(int position) {
                      // when user do a swipe the selected tab change
                      tabHost.setSelectedNavigationItem(position);
  
                  }
              });
  
              for(String tab_name:tabs)
              {
                  tabHost.addTab(
                          tabHost.newTab()
                                  .setText(tab_name)
                                  .setTabListener(MainActivity.this)
                  );
              }
              //navigation
  
          mHandler = new Handler();
  
          drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
          navigationView = (NavigationView) findViewById(R.id.nav_view);
  
  
          // Navigation view header
          navHeader = navigationView.getHeaderView(0);
          txtName = (TextView) navHeader.findViewById(R.id.name);
          txtWebsite = (TextView) navHeader.findViewById(R.id.website);
          imgNavHeaderBg = (ImageView) navHeader.findViewById(R.id.img_header_bg);
          imgProfile = (ImageView) navHeader.findViewById(R.id.img_profile);
  
          // load toolbar titles from string resources
          activityTitles = getResources().getStringArray(R.array.nav_item_activity_titles);
  
  
  
          // load nav menu header data
          loadNavHeader();
  
          // initializing navigation menu
          setUpNavigationView();
  
          if (savedInstanceState == null) {
              navItemIndex = 0;
              CURRENT_TAG = TAG_HOME;
              loadHomeFragment();
          }
  
              //end navigation
  
  
  
      }
  
  //navigation
  
      private void loadNavHeader() {
          // name, website
          txtName.setText("Ravi Tamada");
          txtWebsite.setText("www.androidhive.info");
  
          // loading header background image
          Glide.with(this).load(urlNavHeaderBg)
                  .crossFade()
                  .diskCacheStrategy(DiskCacheStrategy.ALL)
                  .into(imgNavHeaderBg);
  
          // Loading profile image
          Glide.with(this).load(urlProfileImg)
                  .crossFade()
                  .thumbnail(0.5f)
                  .bitmapTransform(new CircleTransform(this))
                  .diskCacheStrategy(DiskCacheStrategy.ALL)
                  .into(imgProfile);
  
          // showing dot next to notifications label
          navigationView.getMenu().getItem(3).setActionView(R.layout.menu_dot);
      }
  
  
      private void setUpNavigationView() {
          //Setting Navigation View Item Selected Listener to handle the item click of the navigation menu
          navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
  
              // This method will trigger on item Click of navigation menu
              @Override
              public boolean onNavigationItemSelected(MenuItem menuItem) {
  
                  //Check to see which item was being clicked and perform appropriate action
                  switch (menuItem.getItemId()) {
                      //Replacing the main content with ContentFragment Which is our Inbox View;
                      case R.id.home:
                          navItemIndex = 0;
                          CURRENT_TAG = TAG_HOME;
                          break;
                      case R.id.nav_photos:
                          navItemIndex = 1;
                          CURRENT_TAG = TAG_PHOTOS;
                          break;
                      case R.id.nav_movies:
                          navItemIndex = 2;
                          CURRENT_TAG = TAG_MOVIES;
                          break;
                      case R.id.nav_notifications:
                          navItemIndex = 3;
                          CURRENT_TAG = TAG_NOTIFICATIONS;
                          break;
                      case R.id.nav_settings:
                          navItemIndex = 4;
                          CURRENT_TAG = TAG_SETTINGS;
                          break;
                      case R.id.nav_about_us:
                          // launch new intent instead of loading fragment
                          startActivity(new Intent(MainActivity.this, HomeFragment.class));
                          drawer.closeDrawers();
                          return true;
                      case R.id.nav_privacy_policy:
                          // launch new intent instead of loading fragment
                          startActivity(new Intent(MainActivity.this, HomeFragment.class));
                          drawer.closeDrawers();
                          return true;
                      default:
                          navItemIndex = 0;
                  }
  
                  //Checking if the item is in checked state or not, if not make it in checked state
                  if (menuItem.isChecked()) {
                      menuItem.setChecked(false);
                  } else {
                      menuItem.setChecked(true);
                  }
                  menuItem.setChecked(true);
  
                  loadHomeFragment();
  
                  return true;
              }
          });
  
  
          ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.openDrawer, R.string.closeDrawer) {
  
              @Override
              public void onDrawerClosed(View drawerView) {
                  // Code here will be triggered once the drawer closes as we dont want anything to happen so we leave this blank
                  super.onDrawerClosed(drawerView);
              }
  
              @Override
              public void onDrawerOpened(View drawerView) {
                  // Code here will be triggered once the drawer open as we dont want anything to happen so we leave this blank
                  super.onDrawerOpened(drawerView);
              }
          };
  
          //Setting the actionbarToggle to drawer layout
          drawer.setDrawerListener(actionBarDrawerToggle);
  
          //calling sync state is necessary or else your hamburger icon wont show up
          actionBarDrawerToggle.syncState();
      }
  
      private void selectNavMenu() {
          navigationView.getMenu().getItem(navItemIndex).setChecked(true);
      }
      private void loadHomeFragment() {
          // selecting appropriate nav menu item
          selectNavMenu();
  
          if (getSupportFragmentManager().findFragmentByTag(CURRENT_TAG) != null) {
              drawer.closeDrawers();
  
              // show or hide the fab button
  
              return;
          }
  
          // Sometimes, when fragment has huge data, screen seems hanging
          // when switching between navigation menus
          // So using runnable, the fragment is loaded with cross fade effect
          // This effect can be seen in GMail app
          Runnable mPendingRunnable = new Runnable() {
              @Override
              public void run() {
                  // update the main content by replacing fragments
                  Fragment fragment = getHomeFragment();
                  FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
                  fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,
                          android.R.anim.fade_out);
                  fragmentTransaction.replace(R.id.ad_linear, fragment, CURRENT_TAG);
                  fragmentTransaction.commitAllowingStateLoss();
              }
          };
  
          // If mPendingRunnable is not null, then add to the message queue
          if (mPendingRunnable != null) {
              mHandler.post(mPendingRunnable);
          }
  
          // show or hide the fab button
  
  
          //Closing drawer on item click
          drawer.closeDrawers();
  
          // refresh toolbar menu
          invalidateOptionsMenu();
      }
  
      private Fragment getHomeFragment() {
          switch (navItemIndex) {
              case 0:
                  // home
                  HomeFragment homeFragment = new HomeFragment();
                  return homeFragment;
              case 1:
                  // photos
                  PhotosFragment photosFragment = new PhotosFragment();
                  return photosFragment;
              case 2:
                  // movies fragment
                  CategoryFragment moviesFragment = new CategoryFragment();
                  return moviesFragment;
              case 3:
                  // notifications fragment
                  CategoryFragment notificationsFragment = new CategoryFragment();
                  return notificationsFragment;
  
              case 4:
                  // settings fragment
                  CategoryFragment settingsFragment = new CategoryFragment();
                  return settingsFragment;
              default:
                  return new HomeFragment();
          }
      }
  @Override
  public void onBackPressed() {
      if (drawer.isDrawerOpen(GravityCompat.START)) {
          drawer.closeDrawers();
          return;
      }
  
      // This code loads home fragment when back key is pressed
      // when user is in other fragment than home
      if (shouldLoadHomeFragOnBackPress) {
          // checking if user is on other navigation menu
          // rather than home
          if (navItemIndex != 0) {
              navItemIndex = 0;
              CURRENT_TAG = TAG_HOME;
              loadHomeFragment();
              return;
          }
      }
  
      super.onBackPressed();
  }
  
  
  
      //end navigation
      @Override
      public void onTabSelected(MaterialTab tab) {
          // TODO Auto-generated method stub
          pager.setCurrentItem(tab.getPosition());
      }
  
      @Override
      public void onTabReselected(MaterialTab tab) {
          // TODO Auto-generated method stub
  
      }
  
      @Override
      public void onTabUnselected(MaterialTab tab) {
          // TODO Auto-generated method stub
  
      }
  
  
  
  
      private class ViewPagerAdapter extends FragmentStatePagerAdapter {
  
          public ViewPagerAdapter(FragmentManager fm) {
              super(fm);
  
          }
  
          public Fragment getItem(int num) {
  
              switch (num) {
                  case 0:
                      return new HomeFragmentCheck();
                  case 1:
                      return new CategoryFragmentCheck();
                  case 2:
                      return new FavouriteFragment();
              }
              return null;
          }
  
          @Override
          public int getCount() {
              return 3;
          }
  
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
  
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.home, menu);
  
  
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem menuItem)
      {       
          switch (menuItem.getItemId()) 
          {
          case R.id.about: 
              Intent intab=new Intent(MainActivity.this,AboutActivity.class);
              startActivity(intab);
              break;
  
              case R.id.update:
  
                  showPU();
  
                  break;
  
  
          default:
              return super.onOptionsItemSelected(menuItem);
          }
          return true;
  
  
  
      }
  
  
  }
  </code></pre>
  
  <p><strong>activity_main.xml</strong></p>
  
  <pre><code>&lt;android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/drawer_layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:fitsSystemWindows="true"
  tools:openDrawer="start"&gt;
  
  &lt;include
      layout="@layout/app_bar_main"
      android:layout_width="match_parent"
      android:layout_height="match_parent" /&gt;
  
  &lt;android.support.design.widget.NavigationView
      android:id="@+id/nav_view"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:layout_gravity="start"
      android:fitsSystemWindows="true"
      app:headerLayout="@layout/nav_header_main"
      app:menu="@menu/activity_main_drawer" /&gt;
  
  &lt;RelativeLayout
      xmlns:tools="http://schemas.android.com/tools"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context=".MainActivity" &gt;
  
      &lt;android.support.v7.widget.Toolbar
          android:id="@+id/toolbar"
          android:layout_width="match_parent"
          android:layout_height="?attr/actionBarSize"
          android:background="@color/m_tab_clr"
          app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
          app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /&gt;
  
      &lt;it.neokree.materialtabs.MaterialTabHost
          android:id="@+id/tabHost"
          android:layout_width="match_parent"
          android:layout_height="48dp"
          android:layout_below="@+id/toolbar"
          app:accentColor="@color/m_tab_select_accent_clr"
          app:primaryColor="@color/m_tab_clr" /&gt;
  
      &lt;android.support.v4.view.ViewPager
          android:id="@+id/pager"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_above="@+id/ad_linear"
          android:layout_below="@+id/tabHost" /&gt;
  
      &lt;LinearLayout
          android:id="@+id/ad_linear"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_alignParentBottom="true"
          android:orientation="horizontal" &gt;
  
  
      &lt;/LinearLayout&gt;
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p></p>
  
  <p><strong>app_bar_main.xml</strong></p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:fitsSystemWindows="true"
      tools:context="com.app.apk.MainActivity"&gt;
  
      &lt;android.support.design.widget.AppBarLayout
          android:layout_width="match_parent"
          android:layout_height="?attr/actionBarSize"
          android:theme="@style/AppTheme.AppBarOverlay"&gt;
      &lt;/android.support.design.widget.AppBarLayout&gt;
      &lt;FrameLayout
          android:id="@+id/frame"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          app:layout_behavior="@string/appbar_scrolling_view_behavior"&gt;&lt;/FrameLayout&gt;
  &lt;/android.support.design.widget.CoordinatorLayout&gt;
  </code></pre>