无论选择哪个groupView,都只会显示一个fragment。

No matter which groupView is selected, only one fragment is shown.

我在导航抽屉中包含一个 ExpandableListView,每个 ExpandableListView 组都应将用户带到两个片段之一:AssignmentManagerFragment 和 SubjectManagerFragment。第三个视图,在组中,被设置为将用户带到 SubjectManagerFragment,但由于某种原因,其中 ALL 个将用户带到 AssignmentManagerFragment。知道为什么,或者可以做些什么来解决它?

这是我的代码:

drawerList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
        @Override
        public boolean onGroupClick(ExpandableListView parent, View v,
                                    int groupPosition, long id){
            Fragment fragment;
            FragmentManager fragmentManager;
            Bundle args;
            switch (groupPosition) {
                case 0:
                    fragment = new AssignmentManagerFragment();
                    fragmentManager = getFragmentManager();
                    args = new Bundle();
                    args.putString(AssignmentManagerFragment.ARG_PARAM1, "" + groupPosition);
                    fragment.setArguments(args);
                    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
                    if (drawerList.isGroupExpanded(groupPosition)) {
                        drawerList.collapseGroup(groupPosition);
                    } else {
                        drawerList.expandGroup(groupPosition, false);
                    }
                    Toast.makeText(getBaseContext(), "Clicked On grooop: " + v.getTag() + "|" + groupPosition,
                            Toast.LENGTH_LONG).show();

                case 1:
                    fragment = new AssignmentManagerFragment();
                    fragmentManager = getFragmentManager();
                    args = new Bundle();
                    args.putString(AssignmentManagerFragment.ARG_PARAM1, "" + groupPosition);
                    fragment.setArguments(args);
                    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
                    if (drawerList.isGroupExpanded(groupPosition)) {
                        drawerList.collapseGroup(groupPosition);
                    } else {
                        drawerList.expandGroup(groupPosition, false);
                    }
                    Toast.makeText(getBaseContext(), "Clicked On grooop: " + v.getTag() + "|" + groupPosition,
                            Toast.LENGTH_LONG).show();

                case 2:
                    fragment = new SubjectManagerFragment();
                    fragmentManager = getFragmentManager();
                    args = new Bundle();
                    args.putString(SubjectManagerFragment.ARG_PARAM1, "" + groupPosition);
                    fragment.setArguments(args);
                    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
                    Toast.makeText(getBaseContext(), "Clicked On grooop: " + v.getTag() + "|" + groupPosition,
                            Toast.LENGTH_SHORT).show();
                    drawer.closeDrawer(drawerList);

                case 3:
                    fragment = new AssignmentManagerFragment();
                    fragmentManager = getFragmentManager();
                    args = new Bundle();
                    args.putString(AssignmentManagerFragment.ARG_PARAM1, "" + groupPosition);
                    fragment.setArguments(args);
                    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
                    if (drawerList.isGroupExpanded(groupPosition)) {
                        drawerList.collapseGroup(groupPosition);
                    } else {
                        drawerList.expandGroup(groupPosition, false);
                    }
                    Toast.makeText(getBaseContext(), "Clicked On grooop: " + v.getTag() + "|" + groupPosition,
                            Toast.LENGTH_LONG).show();

                case 4:
                    fragment = new AssignmentManagerFragment();
                    fragmentManager = getFragmentManager();
                    args = new Bundle();
                    args.putString(AssignmentManagerFragment.ARG_PARAM1, "" + groupPosition);
                    fragment.setArguments(args);
                    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
                    if (drawerList.isGroupExpanded(groupPosition)) {
                        drawerList.collapseGroup(groupPosition);
                    } else {
                        drawerList.expandGroup(groupPosition, false);
                    }
                    Toast.makeText(getBaseContext(), "Clicked On grooop: " + v.getTag() + "|" + groupPosition,
                            Toast.LENGTH_LONG).show();
            }
            return true;
        }

    });

我忘记了每个 case 后的 break 语句。 onGroupClickListener 在功能上没有任何问题;这是一个简单的编码错误,但它可以作为仓促编码的一个很好的例子。