Last active
December 26, 2016 05:22
-
-
Save budioktaviyan/bc817e495846b156e3f2cb1f3992aa90 to your computer and use it in GitHub Desktop.
Main Activity Class (Cont'd)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MainActivity extends AppCompatActivity { | |
MenuItem mMenuItem; | |
DrawerLayout mDrawerLayout; | |
private ActionBarDrawerToggle mActionBarDrawerToggle; | |
@Override | |
protected void onCreate(@Nullable final Bundle savedInstanceState) { | |
mDrawerLayout = (DrawerLayout) findViewById(R.id.dl_main); | |
final NavigationView navigationView = (NavigationView) findViewById(R.id.nv_main); | |
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { | |
@Override | |
public boolean onNavigationItemSelected(@NonNull final MenuItem menuItem) { | |
mMenuItem = menuItem; | |
menuItem.setChecked(true); | |
mDrawerLayout.closeDrawers(); | |
return true; | |
} | |
}); | |
mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) { | |
@Override | |
public void onDrawerOpened(final View drawerView) { | |
super.onDrawerOpened(drawerView); | |
} | |
@Override | |
public void onDrawerClosed(final View drawerView) { | |
super.onDrawerClosed(drawerView); | |
if (null != mMenuItem) { | |
switchNavigationMenu(mMenuItem.getItemId()); | |
} | |
} | |
@Override | |
public void onDrawerSlide(final View drawerView, final float slideOffset) { | |
super.onDrawerSlide(drawerView, slideOffset); | |
if (null != drawerView && drawerView == navigationView) { | |
super.onDrawerSlide(drawerView, 0); | |
} else { | |
super.onDrawerSlide(drawerView, slideOffset); | |
} | |
} | |
}; | |
mDrawerLayout.addDrawerListener(mActionBarDrawerToggle); | |
} | |
@Override | |
protected void onPostCreate(@Nullable final Bundle savedInstanceState) { | |
super.onPostCreate(savedInstanceState); | |
mActionBarDrawerToggle.syncState(); | |
showHomeFragment(); | |
} | |
@Override | |
public void onBackPressed() { | |
if (mDrawerLayout.isDrawerVisible(GravityCompat.START)) { | |
mDrawerLayout.closeDrawers(); | |
} else { | |
finish(); | |
} | |
} | |
public void switchNavigationMenu(final int itemId) { | |
switch (itemId) { | |
case R.id.menu_home: { | |
showHomeFragment(); | |
break; | |
} | |
case R.id.menu_detail: { | |
showDetailFragment(); | |
break; | |
} | |
} | |
} | |
private void showHomeFragment() { | |
final String tag = HomeFragment.class.getSimpleName(); | |
if (getSupportFragmentManager().findFragmentByTag(tag) == null) { | |
final Fragment fragment = new HomeFragment(); | |
final FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); | |
fragmentTransaction.replace(R.id.fl_main, fragment, tag); | |
fragmentTransaction.commit(); | |
} | |
} | |
private void showDetailFragment() { | |
final String tag = DetailFragment.class.getSimpleName(); | |
if (getSupportFragmentManager().findFragmentByTag(tag) == null) { | |
final Fragment fragment = new DetailFragment(); | |
final FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); | |
fragmentTransaction.replace(R.id.fl_main, fragment, tag); | |
fragmentTransaction.commit(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment