简体   繁体   English

单击上一个抽屉项目的特定片段时如何打开下一个抽屉

[英]How to open next drawer on click of a specific fragment of previous drawer item

In my app i want to open new drawer on click of an item of navigation bar in previous drawer of navigation drawer in android . 在我的应用程序中,我想在android的导航抽屉的上一个抽屉中单击导航栏项时打开新抽屉。 like now i had mainactivity.java and fragments are involved on that activity . 就像现在我有mainactivity.java,并且该活动涉及到片段。 Now what i want that when i click on any item of mainactivity.java drawer item then it must open another drawer with different values in item i am attaching my code of mainActivity.java 现在我想要的是,当我单击mainactivity.java抽屉项目中的任何项目时,它必须在项目中打开另一个具有不同值的抽屉,我正在附加我的mainActivity.java代码

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();

    }

These was my code for making one drawer with 6 items now i want that when i click on any item then it must open an specific drawer of that perticular fragment , i had searched but not found answer on google .It is same as app of google drive . 这些是我用6个物品制作一个抽屉的代码,现在我希望当我单击任何项​​目时,它必须打开那个垂直碎片的特定抽屉,我已经在google上搜索但没有找到答案。它与google的应用相同驾驶 。

Just see these example i hope they will help for your problem . 只要看这些例子,我希望它们能为您解决问题。 http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/ http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

It is tutorial of Android Sliding Menu using Navigation Drawer . 这是使用导航抽屉的Android滑动菜单教程。 The required code is i am pasting here :- 所需的代码是我粘贴在这里:-

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");
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM