Advertisement
uopspop

Untitled

Oct 9th, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.41 KB | None | 0 0
  1. package com.example.sam.drawerlayoutprac;
  2.  
  3. import android.support.annotation.NonNull;
  4. import android.support.design.widget.NavigationView;
  5. import android.support.v4.app.Fragment;
  6. import android.support.v4.app.FragmentManager;
  7. import android.support.v4.app.FragmentTransaction;
  8. import android.support.v4.view.GravityCompat;
  9. import android.support.v4.widget.DrawerLayout;
  10. import android.support.v7.app.ActionBar;
  11. import android.support.v7.app.ActionBarDrawerToggle;
  12. import android.support.v7.app.AppCompatActivity;
  13. import android.os.Bundle;
  14. import android.view.MenuItem;
  15. import android.widget.Toast;
  16.  
  17. public class MainActivity extends AppCompatActivity {
  18.  
  19.     DrawerLayout drawerLayout;
  20.     ActionBarDrawerToggle actionBarDrawerToggle;
  21.  
  22.     @Override
  23.     protected void onCreate(Bundle savedInstanceState) {
  24.         super.onCreate(savedInstanceState);
  25.         setContentView(R.layout.activity_main);
  26.  
  27.         // button-1
  28.         setUpActionBar();
  29.  
  30.         initDrawer();
  31.         inigDrawerBody();
  32.     }
  33.  
  34.     @Override
  35.     public void onPostCreate(Bundle savedInstanceState){
  36.         super.onPostCreate(savedInstanceState);
  37.         // button-3
  38.         actionBarDrawerToggle.syncState();
  39.     }
  40.  
  41.     private void setUpActionBar() {
  42.         ActionBar actionbar = getSupportActionBar();
  43.         if (actionbar != null){
  44.             actionbar.setDisplayHomeAsUpEnabled(true);
  45.         }
  46.     }
  47.  
  48.  
  49.     private void initDrawer(){
  50.         drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
  51.         NavigationView navigationView = (NavigationView)drawerLayout.findViewById(R.id.navigation_view);
  52.  
  53.         navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
  54.             @Override
  55.             public boolean onNavigationItemSelected(@NonNull MenuItem item) {
  56.                 item.setChecked(true);
  57.                 drawerLayout.closeDrawers(); // important step
  58.                 Fragment fragment = null;
  59.                 switch (item.getItemId()){
  60.                     case R.id.lookfor_hotel:
  61.                         showToast("hotel clicked");
  62.                         fragment = new HotelFragment();
  63.                         switchFragment(R.id.drawer_layout_body,fragment);
  64.                         break;
  65.                     case R.id.lookfor_partner:
  66.                         showToast("partner clicked");
  67.                         fragment = new PartnerFragment();
  68.                         switchFragment(R.id.drawer_layout_body,fragment);
  69.                         break;
  70.  
  71.                 }
  72.  
  73.                 return false;
  74.             }
  75.         });
  76.  
  77.         // button-2
  78.         // 讓左上角的按鈕和DrawerLayout的動作同步,並同時製作轉動效果
  79.         actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.open, R.string.close);
  80.         drawerLayout.addDrawerListener(actionBarDrawerToggle);
  81.  
  82.     }// end InitDrawer
  83.  
  84.  
  85.     @Override
  86.     public boolean onOptionsItemSelected(MenuItem item){
  87.         NavigationView navigationView = (NavigationView)drawerLayout.findViewById(R.id.navigation_view);
  88.  
  89.         // button-4
  90.         switch(item.getItemId()){
  91.             case android.R.id.home: // for home button at the top left corner
  92.             if (drawerLayout.isDrawerOpen(navigationView)){
  93.                 drawerLayout.closeDrawer(navigationView);
  94.             }else {
  95.                 drawerLayout.openDrawer(navigationView);
  96.             }
  97. //            if (drawerLayout.isDrawerOpen(GravityCompat.START)){
  98. //                drawerLayout.closeDrawer(GravityCompat.START);
  99. //            }else {
  100. //                drawerLayout.openDrawer(GravityCompat.START);
  101. //            }
  102.             return true;
  103.         }
  104.         return onOptionsItemSelected(item);
  105.     }
  106.  
  107.     private void inigDrawerBody() {
  108.         Fragment fragment = new HotelFragment();
  109.         switchFragment(R.id.drawer_layout_body,fragment);
  110.     }
  111.     private void switchFragment(int layoutId, Fragment fragment){
  112.         FragmentManager fragmentManager = getSupportFragmentManager();
  113.         FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
  114.         fragmentTransaction.replace(layoutId,fragment);
  115.         fragmentTransaction.commit();
  116.     }
  117.     private void showToast(String msg){
  118.         Toast.makeText(getApplicationContext(),
  119.                 msg,
  120.                 Toast.LENGTH_SHORT)
  121.                 .show();
  122.     }
  123.  
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement