Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends AppCompatActivity {
- private String[] mNumberTitles;
- private DrawerLayout mDrawerLayout;
- private ListView mDrawerList;
- private Toolbar toolbar;
- private ActionBarDrawerToggle mDrawerToggle;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- FragmentManager fragmentManager = getSupportFragmentManager();
- Fragment fragment = fragmentManager.findFragmentById(R.id.fragment_container);
- if (fragment == null) {
- FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
- fragmentTransaction
- .add( R.id.fragment_container, new Fragment0())
- .commit();
- }
- mNumberTitles = getResources().getStringArray(R.array.numbers_array);
- mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
- mDrawerList = (ListView) findViewById(R.id.left_drawer);
- // Set the adapter for the list view
- mDrawerList.setAdapter(new ArrayAdapter<String>(this,
- R.layout.drawer_list_item, mNumberTitles));
- // Set the list's click listener
- mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
- initToolbar();
- mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
- toolbar, R.string.drawer_open, R.string.drawer_close);
- // Set the drawer toggle as the DrawerListener
- mDrawerLayout.addDrawerListener(mDrawerToggle);
- mDrawerToggle.syncState();
- // заменяем гамбургер на Up button во второстепенных фрагментах
- fragmentManager.addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
- @Override
- public void onBackStackChanged() {
- if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- } else {
- getSupportActionBar().setDisplayHomeAsUpEnabled(false);
- mDrawerToggle.syncState();
- }
- }
- });
- }
- private void initToolbar() {
- toolbar = (Toolbar) findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
- }
- /** Swaps fragments in the main content view */
- private void selectItem(int position) {
- Fragment fragment = null;
- switch (position) {
- case 0 : fragment = new Fragment0();
- break;
- case 1 : fragment = new Fragment1();
- break;
- case 2 : fragment = new Fragment2();
- break;
- default: fragment = new Fragment0();
- break;
- }
- FragmentManager fragmentManager = getSupportFragmentManager();
- FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
- fragmentTransaction.replace(R.id.fragment_container, fragment)
- .addToBackStack(null)
- .commit();
- // Highlight the selected item, update the title, and close the drawer
- mDrawerList.setItemChecked(position, true);
- setTitle(mNumberTitles[position]);
- mDrawerLayout.closeDrawer(mDrawerList);
- }
- private void setTitle(String title) {
- if (toolbar != null)
- toolbar.setTitle(title);
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home: // it's for up button
- Log.d("!!!!!!!!!", "HOMe button is pressed");
- getSupportFragmentManager().popBackStack();
- return true;
- default:
- break;
- }
- return super.onOptionsItemSelected(item);
- }
- private class DrawerItemClickListener implements ListView.OnItemClickListener {
- @Override
- public void onItemClick(AdapterView parent, View view, int position, long id) {
- selectItem(position);
- }
- }
Add Comment
Please, Sign In to add comment