Advertisement
Guest User

Untitled

a guest
Jul 27th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3. private String[] mNumberTitles;
  4. private DrawerLayout mDrawerLayout;
  5. private ListView mDrawerList;
  6. private Toolbar toolbar;
  7. private ActionBarDrawerToggle mDrawerToggle;
  8.  
  9.  
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_main);
  14.  
  15. FragmentManager fragmentManager = getSupportFragmentManager();
  16. Fragment fragment = fragmentManager.findFragmentById(R.id.fragment_container);
  17. if (fragment == null) {
  18. FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
  19. fragmentTransaction
  20. .add( R.id.fragment_container, new Fragment0())
  21. .commit();
  22. }
  23.  
  24.  
  25. mNumberTitles = getResources().getStringArray(R.array.numbers_array);
  26. mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
  27. mDrawerList = (ListView) findViewById(R.id.left_drawer);
  28.  
  29. // Set the adapter for the list view
  30. mDrawerList.setAdapter(new ArrayAdapter<String>(this,
  31. R.layout.drawer_list_item, mNumberTitles));
  32. // Set the list's click listener
  33. mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
  34.  
  35. initToolbar();
  36.  
  37.  
  38. mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
  39. toolbar, R.string.drawer_open, R.string.drawer_close);
  40.  
  41. // Set the drawer toggle as the DrawerListener
  42. mDrawerLayout.addDrawerListener(mDrawerToggle);
  43. mDrawerToggle.syncState();
  44.  
  45.  
  46. // заменяем гамбургер на Up button во второстепенных фрагментах
  47. fragmentManager.addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
  48. @Override
  49. public void onBackStackChanged() {
  50. if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
  51. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  52.  
  53.  
  54. } else {
  55. getSupportActionBar().setDisplayHomeAsUpEnabled(false);
  56. mDrawerToggle.syncState();
  57. }
  58. }
  59. });
  60.  
  61. }
  62.  
  63. private void initToolbar() {
  64. toolbar = (Toolbar) findViewById(R.id.toolbar);
  65. setSupportActionBar(toolbar);
  66.  
  67. }
  68.  
  69. /** Swaps fragments in the main content view */
  70. private void selectItem(int position) {
  71.  
  72. Fragment fragment = null;
  73. switch (position) {
  74. case 0 : fragment = new Fragment0();
  75. break;
  76. case 1 : fragment = new Fragment1();
  77. break;
  78. case 2 : fragment = new Fragment2();
  79. break;
  80. default: fragment = new Fragment0();
  81. break;
  82. }
  83.  
  84. FragmentManager fragmentManager = getSupportFragmentManager();
  85. FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
  86. fragmentTransaction.replace(R.id.fragment_container, fragment)
  87. .addToBackStack(null)
  88. .commit();
  89.  
  90. // Highlight the selected item, update the title, and close the drawer
  91. mDrawerList.setItemChecked(position, true);
  92. setTitle(mNumberTitles[position]);
  93. mDrawerLayout.closeDrawer(mDrawerList);
  94. }
  95.  
  96. private void setTitle(String title) {
  97. if (toolbar != null)
  98. toolbar.setTitle(title);
  99. }
  100.  
  101.  
  102. @Override
  103. public boolean onOptionsItemSelected(MenuItem item) {
  104.  
  105. switch (item.getItemId()) {
  106. case android.R.id.home: // it's for up button
  107. Log.d("!!!!!!!!!", "HOMe button is pressed");
  108. getSupportFragmentManager().popBackStack();
  109. return true;
  110. default:
  111. break;
  112. }
  113. return super.onOptionsItemSelected(item);
  114. }
  115.  
  116.  
  117. private class DrawerItemClickListener implements ListView.OnItemClickListener {
  118. @Override
  119. public void onItemClick(AdapterView parent, View view, int position, long id) {
  120. selectItem(position);
  121. }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement