0

I want to change the title of my Navigation Drawer when a user clicks on the particular fragment of the navigation drawer. I'm new to the world of Android Programming. So please kindly help Below is my code

Main Activity Code

    package com.androidbelieve.HIT_APP;

import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity{
    DrawerLayout mDrawerLayout;
    NavigationView mNavigationView;
    FragmentManager mFragmentManager;
    FragmentTransaction mFragmentTransaction;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         *Setup the DrawerLayout and NavigationView
         */

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        mNavigationView = (NavigationView) findViewById(R.id.shitstuff) ;




        /**
         * Lets inflate the very first fragment
         * Here , we are inflating the TabFragment as the first Fragment
         */

        mFragmentManager = getSupportFragmentManager();
        mFragmentTransaction = mFragmentManager.beginTransaction();
        // mFragmentTransaction.replace(R.id.containerView,new TabFragment()).commit();
        mFragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit();


        /**
         * Setup click events on the Navigation View Items.
         */

        mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                mDrawerLayout.closeDrawers();




              if (menuItem.getItemId() == R.id.nav_item_home) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_dept) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new DeptFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_facility) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new FacilityFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_placement) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new PlacementFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_gallery) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new GalleryFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_developer) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new DeveloperFragment()).commit();

                }



                if (menuItem.getItemId() == R.id.nav_item_near) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new NearFragment()).commit();

                }


                if (menuItem.getItemId() == R.id.nav_item_notify) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new NotifyFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_vtu) {
                    FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                    xfragmentTransaction.replace(R.id.containerView,new TabFragment()).commit();
                }


                return false;

            }



        });

        /**
         * Setup Drawer Toggle of the Toolbar
         */

        android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
        ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout, toolbar,R.string.app_name,
                R.string.app_name);

        mDrawerLayout.setDrawerListener(mDrawerToggle);

        mDrawerToggle.syncState();

    }
}

I think something needs to be done here itself when a person selects any of the drawer items.

Any other piece of code required let me know

sunny
  • 127
  • 1
  • 6

1 Answers1

1

move variable of android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar); above just after setContentView in onCreate method of your activity & make it final.

when user select navigation drawer set title of ToolBar in onNavigationItemSelected like below.

if (menuItem.getItemId() == R.id.nav_item_home) {
   FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
   fragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit();
   toolbar.setTitle("Your Fragment Name");
   }

to set ICON you can use

toolbar.setLogo(ContextCompat.getDrawable(MainActivity.this, R.drawable.cheese_1));
Dhaval Parmar
  • 18,812
  • 8
  • 82
  • 177
  • @sunny: check Edited answer and you can import sample code of support library from android SDK. check path in your android SDK AndroidSDK\extras\android\support\samples many other sample is here AndroidSDK\samples\android-23 all are sample import in Android studio run it. its help you – Dhaval Parmar Feb 12 '16 at 11:09
  • how to make gallery in grid view, like the images will be shown in grid view and when u click on it, it will be displayed with some text in it. – sunny Feb 12 '16 at 11:13
  • Thanks for that, but when i click on the picture it doesn't protrude. The app crashs instead – sunny Feb 12 '16 at 11:27
  • check path in your android SDK AndroidSDK\extras\android\support\samples many other sample is here AndroidSDK\samples\android-23 all are sample import in Android studio run it. all type of sample available here please take look in SDK sample – Dhaval Parmar Feb 12 '16 at 11:31