Navigation Drawer in Android Studio

  1. package com.abc.navigationdrawer;  
  2.   
  3. import android.content.Intent;  
  4. import android.os.Bundle;  
  5. import android.support.design.widget.NavigationView;  
  6. import android.support.v4.view.GravityCompat;  
  7. import android.support.v4.widget.DrawerLayout;  
  8. import android.support.v7.app.ActionBar;  
  9. import android.support.v7.app.AppCompatActivity;  
  10. import android.support.v7.widget.Toolbar;  
  11. import android.view.Menu;  
  12. import android.view.MenuItem;  
  13. import android.widget.TextView;  
  14. import android.widget.Toast;  
  15.   
  16. public class MainActivity extends AppCompatActivity {  
  17.   
  18.     DrawerLayout drawerLayout;  
  19.     Toolbar toolbar;  
  20.     ActionBar actionBar;  
  21.     TextView textView;  
  22.   
  23.     @Override  
  24.     protected void onCreate(Bundle savedInstanceState) {  
  25.         super.onCreate(savedInstanceState);  
  26.         setContentView(R.layout.activity_main);  
  27.   
  28.         toolbar = (Toolbar) findViewById(R.id.toolbar);  
  29.         setSupportActionBar(toolbar);  
  30.   
  31.         actionBar = getSupportActionBar();  
  32.         actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp);  
  33.         actionBar.setDisplayHomeAsUpEnabled(true);  
  34.   
  35.         drawerLayout = (DrawerLayout) findViewById(R.id.navigation_drawer_layout);  
  36.   
  37.         NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view);  
  38.         if (navigationView != null) {  
  39.             setupNavigationDrawerContent(navigationView);  
  40.         }  
  41.   
  42.         setupNavigationDrawerContent(navigationView);  
  43.   
  44.     }  
  45.   
  46.   
  47.   
  48.     @Override  
  49.     public boolean onCreateOptionsMenu(Menu menu) {  
  50.         // Inflate the menu; this adds items to the action bar if it is present.  
  51.         getMenuInflater().inflate(R.menu.menu_main, menu);  
  52.         return true;  
  53.     }  
  54.   
  55.     @Override  
  56.     public boolean onOptionsItemSelected(MenuItem item) {  
  57.         switch (item.getItemId()) {  
  58.             case android.R.id.home:  
  59.                 drawerLayout.openDrawer(GravityCompat.START);  
  60.                 return true;  
  61.         }  
  62.         return super.onOptionsItemSelected(item);  
  63.     }  
  64.   
  65.     private void setupNavigationDrawerContent(NavigationView navigationView) {  
  66.         navigationView.setNavigationItemSelectedListener(  
  67.                 new NavigationView.OnNavigationItemSelectedListener() {  
  68.                     @Override  
  69.                     public boolean onNavigationItemSelected(MenuItem menuItem) {  
  70.                         textView = (TextView) findViewById(R.id.textView);  
  71.                         switch (menuItem.getItemId()) {  
  72.                             case R.id.item_navigation_drawer_inbox:  
  73.                                 menuItem.setChecked(true);  
  74.                                 textView.setText(menuItem.getTitle());  
  75.                                 drawerLayout.closeDrawer(GravityCompat.START);  
  76.                                 return true;  
  77.                             case R.id.item_navigation_drawer_starred:  
  78.                                 menuItem.setChecked(true);  
  79.                                 textView.setText(menuItem.getTitle());  
  80.                                 drawerLayout.closeDrawer(GravityCompat.START);  
  81.                                 return true;  
  82.                             case R.id.item_navigation_drawer_sent_mail:  
  83.                                 menuItem.setChecked(true);  
  84.                                 textView.setText(menuItem.getTitle());  
  85.                                 drawerLayout.closeDrawer(GravityCompat.START);  
  86.                                 return true;  
  87.                             case R.id.item_navigation_drawer_drafts:  
  88.                                 menuItem.setChecked(true);  
  89.                                 textView.setText(menuItem.getTitle());  
  90.                                 drawerLayout.closeDrawer(GravityCompat.START);  
  91.                                 return true;  
  92.                             case R.id.item_navigation_drawer_settings:  
  93.                                 menuItem.setChecked(true);  
  94.                                 textView.setText(menuItem.getTitle());  
  95.                                 Toast.makeText(MainActivity.this"Launching " + menuItem.getTitle().toString(), Toast.LENGTH_SHORT).show();  
  96.                                 drawerLayout.closeDrawer(GravityCompat.START);  
  97.                                 Intent intent = new Intent(MainActivity.this, SettingsActivity.class);  
  98.                                 startActivity(intent);  
  99.                                 return true;  
  100.                             case R.id.item_navigation_drawer_help_and_feedback:  
  101.                                 menuItem.setChecked(true);  
  102.                                 Toast.makeText(MainActivity.this, menuItem.getTitle().toString(), Toast.LENGTH_SHORT).show();  
  103.                                 drawerLayout.closeDrawer(GravityCompat.START);  
  104.                                 return true;  
  105.                         }  
  106.                         return true;  
  107.                     }  
  108.                 });  
  109.     }  
  110. }  
MainActivity.Java
  1. package com.abc.navigationdrawer;  
  2.   
  3. import android.os.Build;  
  4. import android.support.v7.app.AppCompatActivity;  
  5. import android.os.Bundle;  
  6. import android.support.v7.widget.Toolbar;  
  7. import android.util.TypedValue;  
  8. import android.view.Menu;  
  9. import android.view.MenuItem;  
  10.   
  11. public class SettingsActivity extends AppCompatActivity {  
  12.   
  13.     Toolbar toolbar;  
  14.   
  15.     @Override  
  16.     protected void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.activity_settings);  
  19.   
  20.         toolbar = (Toolbar) findViewById(R.id.toolbar);  
  21.         setSupportActionBar(toolbar);  
  22.         getSupportActionBar().setDisplayHomeAsUpEnabled(true);  
  23.   
  24.         TypedValue typedValueColorPrimaryDark = new TypedValue();  
  25.         SettingsActivity.this.getTheme().resolveAttribute(R.attr.colorPrimaryDark, typedValueColorPrimaryDark, true);  
  26.         final int colorPrimaryDark = typedValueColorPrimaryDark.data;  
  27.         if (Build.VERSION.SDK_INT >= 21) {  
  28.             getWindow().setStatusBarColor(colorPrimaryDark);  
  29.         }  
  30.     }  
  31.   
  32.     @Override  
  33.     public boolean onCreateOptionsMenu(Menu menu) {  
  34.         // Inflate the menu; this adds items to the action bar if it is present.  
  35.         getMenuInflater().inflate(R.menu.menu_settings, menu);  
  36.         return true;  
  37.     }  
  38.   
  39.     @Override  
  40.     public boolean onOptionsItemSelected(MenuItem item) {  
  41.         // Handle action bar item clicks here. The action bar will  
  42.         // automatically handle clicks on the Home/Up button, so long  
  43.         // as you specify a parent activity in AndroidManifest.xml.  
  44.         int id = item.getItemId();  
  45.   
  46.         //noinspection SimplifiableIfStatement  
  47.         if (id == R.id.action_settings) {  
  48.             return true;  
  49.         }  
  50.   
  51.         return super.onOptionsItemSelected(item);  
  52.     }  
  53. }