我似乎无法在没有应用程序粉碎的情况下替换碎片。在询问之前尝试阅读它,但我无法找到明确的答案。好像这是一个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();
}
}
});
答案 0 :(得分:1)
在第一次转换的情况下,你可能会丢失break;
吗?