碎片已经添加 - 一个错误

时间:2014-07-10 18:44:31

标签: android fragment fragmenttransaction

我似乎无法在没有应用程序粉碎的情况下替换碎片。在询问之前尝试阅读它,但我无法找到明确的答案。好像这是一个bug(?)

这是我的代码(在swtich情况下失败:1错误,片段主已添加)

 // Sound Cloud fragment
        mSoundCloudFrag = new SoundCloudFragment();

        // Add just the main player fragment
        main = new Play_Main();

        fm = getFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.add(R.id.frameContainer, main, "main");
        ft.commit();
        getFragmentManager().executePendingTransactions();


        // Navigation Drawer
        mNavigationItems = getResources().getStringArray(R.array.nav_drawer);
        mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.left_drawer);

        mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_itm, mNavigationItems));
        mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                switch (position) {
                    case 0: // Open the SoundCloud fragment
                        FragmentTransaction ft = fm.beginTransaction();
                        ft.replace(R.id.frameContainer, mSoundCloudFrag, "soundCloudFrag");
                        ft.commit();

                        mDrawer.closeDrawers();

                    case 1: // Local PC media player
                        FragmentTransaction ft2 = fm.beginTransaction();
                        ft2.replace(R.id.frameContainer, main, "main");
                        ft2.commit();

                        mDrawer.closeDrawers();
                }

            }
        });

1 个答案:

答案 0 :(得分:1)

在第一次转换的情况下,你可能会丢失break;吗?