MainActivity.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. package club.thepenguins.android.activities;
  2. import androidx.appcompat.app.ActionBarDrawerToggle;
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import androidx.appcompat.widget.Toolbar;
  5. import androidx.core.view.GravityCompat;
  6. import androidx.drawerlayout.widget.DrawerLayout;
  7. import androidx.fragment.app.Fragment;
  8. import androidx.fragment.app.FragmentManager;
  9. import android.content.res.Configuration;
  10. import android.os.Bundle;
  11. import android.view.MenuItem;
  12. import com.google.android.material.navigation.NavigationView;
  13. import club.thepenguins.android.R;
  14. import club.thepenguins.android.fragments.AboutFragment;
  15. import club.thepenguins.android.fragments.HomeFragment;
  16. public class MainActivity extends AppCompatActivity {
  17. private DrawerLayout mDrawer;
  18. private Toolbar toolbar;
  19. private NavigationView nvDrawer;
  20. private ActionBarDrawerToggle drawerToggle;
  21. @Override
  22. protected void onCreate(Bundle savedInstanceState) {
  23. super.onCreate(savedInstanceState);
  24. setContentView(R.layout.activity_main);
  25. toolbar = findViewById(R.id.toolbar);
  26. setSupportActionBar(toolbar);
  27. getSupportActionBar().setDisplayShowTitleEnabled(false);
  28. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  29. mDrawer = findViewById(R.id.drawer_layout);
  30. nvDrawer = findViewById(R.id.nvView);
  31. setupDrawerContent(nvDrawer);
  32. mDrawer = findViewById(R.id.drawer_layout);
  33. drawerToggle = setupDrawerToggle();
  34. drawerToggle.setDrawerIndicatorEnabled(true);
  35. drawerToggle.syncState();
  36. mDrawer.addDrawerListener(drawerToggle);
  37. FragmentManager fragmentManager = getSupportFragmentManager();
  38. fragmentManager.beginTransaction().replace(R.id.flContent, HomeFragment.newInstance("null", "null")).commit();
  39. }
  40. @Override
  41. protected void onPostCreate(Bundle savedInstanceState) {
  42. super.onPostCreate(savedInstanceState);
  43. drawerToggle.syncState();
  44. }
  45. @Override
  46. public void onConfigurationChanged(Configuration newConfig) {
  47. super.onConfigurationChanged(newConfig);
  48. drawerToggle.onConfigurationChanged(newConfig);
  49. }
  50. private ActionBarDrawerToggle setupDrawerToggle() {
  51. return new ActionBarDrawerToggle(this, mDrawer, toolbar, R.string.drawer_open, R.string.drawer_close);
  52. }
  53. @Override
  54. public boolean onOptionsItemSelected(MenuItem item) {
  55. switch (item.getItemId()) {
  56. case android.R.id.home:
  57. mDrawer.openDrawer(GravityCompat.START);
  58. return true;
  59. }
  60. return super.onOptionsItemSelected(item);
  61. }
  62. private void setupDrawerContent(NavigationView navigationView) {
  63. navigationView.setNavigationItemSelectedListener(
  64. new NavigationView.OnNavigationItemSelectedListener() {
  65. @Override
  66. public boolean onNavigationItemSelected(MenuItem menuItem) {
  67. selectDrawerItem(menuItem);
  68. return true;
  69. }
  70. });
  71. }
  72. public void selectDrawerItem(MenuItem menuItem) {
  73. Fragment fragment = null;
  74. Class fragmentClass = null;
  75. switch (menuItem.getItemId()) {
  76. case R.id.nav_first_fragment:
  77. fragmentClass = HomeFragment.class;
  78. break;
  79. case R.id.aboutfrag:
  80. fragmentClass = AboutFragment.class;
  81. break;
  82. //case R.id.nav_third_fragment:
  83. // fragmentClass = ThirdFragment.class;
  84. // break;
  85. default:
  86. // fragmentClass = FirstFragment.class;
  87. }
  88. try {
  89. fragment = (Fragment) fragmentClass.newInstance();
  90. } catch (Exception e) {
  91. e.printStackTrace();
  92. }
  93. FragmentManager fragmentManager = getSupportFragmentManager();
  94. fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();
  95. menuItem.setChecked(true);
  96. setTitle(menuItem.getTitle());
  97. mDrawer.closeDrawers();
  98. }
  99. }