title: Refresh Header in Navigation Drawer
body: <p>Though i have been looking around, couldn't find the correct answer.
  In my navigation drawer header I provide user with his image and name, But i also allow the user to change his/her name and image from the app. 
  These changes are stored in session manager. 
  Now i want to reflect these changes in my navigation drawer header.
  Everything is working fine because when i close the app and run it again it shows the changes.
  So for now what i need is a way to refresh the navigation drawer header.</p>
  
  <p>Select image from gallery in Profile Fragment.</p>
  
  <pre><code> private void onSelectFromGalleryResult(Intent data) {
  
          String selectedImagePath = getPathFromCameraData(data, getActivity());
  
          Bitmap bm;
          BitmapFactory.Options options = new BitmapFactory.Options();
          options.inJustDecodeBounds = true;
          BitmapFactory.decodeFile(selectedImagePath, options);
          final int REQUIRED_SIZE = 200;
          int scale = 1;
          while (options.outWidth / scale / 2 &gt;= REQUIRED_SIZE
                  &amp;&amp; options.outHeight / scale / 2 &gt;= REQUIRED_SIZE)
              scale *= 2;
          options.inSampleSize = scale;
          options.inJustDecodeBounds = false;
          bm = BitmapFactory.decodeFile(selectedImagePath, options);
          bitmap = bm;
          profilephoto = BitMapToString(bm);
  
          session.setprofilepic(profilephoto);// make changes in session.
            profilepic.setImageBitmap(bm);
  
      }
  </code></pre>
  
  <p>Homepage activity</p>
  
  <pre><code>@Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_homepageactivity);
          session = new SessionManager(getApplicationContext());
  
          mTitle = mDrawerTitle = getTitle();
  
          topToolBar = (Toolbar)findViewById(R.id.toolbar);
          setSupportActionBar(topToolBar);
          //topToolBar.setLogo(R.drawable.logo);
          topToolBar.setLogoDescription(getResources().getString(R.string.logo_desc));
  
  
          mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
          mDrawerList = (ListView) findViewById(R.id.left_drawer);
          LayoutInflater inflater = getLayoutInflater();
          listHeaderView = inflater.inflate(R.layout.header_list, null, false);
  
          //ImageView profile = (ImageView)listHeaderView.findViewById(R.id.profile_picture);
  
          TextView name = (TextView)listHeaderView.findViewById(R.id.headername);
          profilepic = (ImageView)listHeaderView.findViewById(R.id.profile);
  
          user = session.getUserDetails();
          profilepic.setImageBitmap(StringToBitMap(user.get(SessionManager.KEY_PROFILEPIC)));
          name.setText(user.get(SessionManager.KEY_NAME));
          mDrawerList.addHeaderView(listHeaderView); ////// HEADER ADDED
  
  
          List&lt;ItemObject&gt; listViewItems = new ArrayList&lt;ItemObject&gt;();
         listViewItems.add(new ItemObject("Attendance", R.drawable.attendance));
        //  listViewItems.add(new ItemObject("Time table", R.drawable.timetable));
         // listViewItems.add(new ItemObject("Class 1", R.drawable.classicon));
  
          adapter = new CustomAdapter(this, listViewItems);
  
  
          mDrawerList.setAdapter(new CustomAdapter(this, listViewItems));
  
          mDrawerToggle = new ActionBarDrawerToggle(Homepageactivity.this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) {
  
              /** Called when a drawer has settled in a completely closed state. */
              public void onDrawerClosed(View view) {
                  super.onDrawerClosed(view);
                  getSupportActionBar().setTitle(mTitle);
                  invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
              }
  
              /** Called when a drawer has settled in a completely open state. */
              public void onDrawerOpened(View drawerView) {
                  super.onDrawerOpened(drawerView);
                  getSupportActionBar().setTitle(mDrawerTitle);
                  profilepic.setImageBitmap(StringToBitMap(user.get(SessionManager.KEY_PROFILEPIC)));
                  invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
              }
          };
  
          // Set the drawer toggle as the DrawerListener
          mDrawerLayout.setDrawerListener(mDrawerToggle);
          mDrawerToggle.setDrawerIndicatorEnabled(true);
  
          getSupportActionBar().setDisplayHomeAsUpEnabled(true);
          getSupportActionBar().setHomeButtonEnabled(true);
  
          mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
              @Override
              public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {
                  // make Toast when click
                  Toast.makeText(getApplicationContext(), "Position " + position, Toast.LENGTH_LONG).show();
                  selectItemFragment(position);
              }
          });
      }
  </code></pre>