2016-05-24 2 views
0

Dans mon application, je veux ouvrir un nouveau tiroir sur le clic d'un élément de la barre de navigation dans le tiroir précédent du tiroir de navigation dans android. comme maintenant j'ai eu mainactivity.java et des fragments sont impliqués dans cette activité. Maintenant, ce que je veux que lorsque je clique sur un élément de l'élément de tiroir mainactivity.java alors il doit ouvrir un autre tiroir avec des valeurs différentes au point que je joins mon code de mainActivity.javaComment ouvrir le prochain tiroir sur le clic d'un fragment spécifique du tiroir précédent article

public class MainActivity extends AppCompatActivity{ 
    DrawerLayout mDrawerLayout; 
    NavigationView mNavigationView; 
    FragmentManager mFragmentManager; 
    FragmentTransaction mFragmentTransaction; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_coordinator); 

     /** 
     *Setup the DrawerLayout and NavigationView 
     */ 

      mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
      mNavigationView = (NavigationView) findViewById(R.id.shitstuff) ; 

     /** 
     * Lets inflate the very first fragment 
     * Here , we are inflating the TabFragment as the first Fragment 
     */ 

      mFragmentManager = getSupportFragmentManager(); 
      mFragmentTransaction = mFragmentManager.beginTransaction(); 
      mFragmentTransaction.replace(R.id.containerView,new TabFragment()).commit(); 
     /** 
     * Setup click events on the Navigation View Items. 
     */ 

      mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(MenuItem menuItem) { 
       mDrawerLayout.closeDrawers(); 



       if (menuItem.getItemId() == R.id.nav_item_home) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new coordinatorPanelFragment()).commit(); 

       } 


       if (menuItem.getItemId() == R.id.nav_item_fllclass) { 
        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction(); 
        xfragmentTransaction.replace(R.id.containerView,new fillClassFragment()).commit(); 
       } 
/// 

       if (menuItem.getItemId() == R.id.nav_item_fillstudent) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new fillStudentFragment()).commit(); 

       } 


       if (menuItem.getItemId() == R.id.nav_item_fillschedule) { 
        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction(); 
        xfragmentTransaction.replace(R.id.containerView,new fillscheduleFragment()).commit(); 
       } 


       if (menuItem.getItemId() == R.id.nav_item_seebunk) { 
        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction(); 
        xfragmentTransaction.replace(R.id.containerView,new seeBunkedStudentFragment()).commit(); 
       } 

       if (menuItem.getItemId() == R.id.nav_item_cus) { 
        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction(); 
        xfragmentTransaction.replace(R.id.containerView,new ContactusFragment()).commit(); 
       } 

       if (menuItem.getItemId() == R.id.nav_item_help) { 
        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction(); 
        xfragmentTransaction.replace(R.id.containerView,new helpCoorFragment()).commit(); 
       } 





       return false; 
      } 

     }); 

     /** 
     * Setup Drawer Toggle of the Toolbar 
     */ 

       android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar); 
       ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout, toolbar,R.string.app_name, 
       R.string.app_name); 

       mDrawerLayout.setDrawerListener(mDrawerToggle); 

       mDrawerToggle.syncState(); 

    } 

C'était mon code pour faire un tiroir avec 6 articles maintenant je veux que lorsque je clique sur un élément, il doit ouvrir un tiroir spécifique de ce fragment perticular, j'avais cherché mais pas trouvé réponse sur google. Il est même que l'application de google drive.

Répondre

1

Juste voir cet exemple j'espère qu'ils vont vous aider pour votre problème. http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

Il est tutoriel de Sliding Menu Android en utilisant le panneau de navigation. Le code requis est je colle ici: -

private class SlideMenuClickListener implements 
      ListView.OnItemClickListener { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, 
       long id) { 
      // display view for selected nav drawer item 
      displayView(position); 
     } 
    } 

    /** 
    * Diplaying fragment view for selected nav drawer list item 
    * */ 
    private void displayView(int position) { 
     // update the main content by replacing fragments 
     Fragment fragment = null; 
     switch (position) { 
     case 0: 
      fragment = new HomeFragment(); 
      break; 
     case 1: 
      fragment = new FindPeopleFragment(); 
      break; 
     case 2: 
      fragment = new PhotosFragment(); 
      break; 
     case 3: 
      fragment = new CommunityFragment(); 
      break; 
     case 4: 
      fragment = new PagesFragment(); 
      break; 
     case 5: 
      fragment = new WhatsHotFragment(); 
      break; 

     default: 
      break; 
     } 

     if (fragment != null) { 
      FragmentManager fragmentManager = getFragmentManager(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.frame_container, fragment).commit(); 

      // update selected item and title, then close the drawer 
      mDrawerList.setItemChecked(position, true); 
      mDrawerList.setSelection(position); 
      setTitle(navMenuTitles[position]); 
      mDrawerLayout.closeDrawer(mDrawerList); 
     } else { 
      // error in creating fragment 
      Log.e("MainActivity", "Error in creating fragment"); 
     } 
    }