0

我的应用程序中有一个标签主机。它使用一个片段活动,包含5个选项卡(片段)在第3个选项卡中,有一个按钮,当我点击它时,它将转到另一个片段,即替换原来的片段

gridView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {
                tracker.send(MapBuilder.createEvent("click_button","Gallery","Gallery_select_" + Utility.getLocale(getActivity()),null).build());
                Bundle bundle = new Bundle();
                bundle.putSerializable("imageObj", images.get(position));
                Fragment newFragment = (Fragment) new GalleryDetail();
                FragmentTransaction transaction = getFragmentManager().beginTransaction();
                newFragment.setArguments(bundle);
                transaction.replace(R.id.tabcontent, newFragment,"gallery_detail");
                transaction.addToBackStack("gallery_detail");
                transaction.commit();
            }
        });

那么问题就会出现在这个流程中:

1)打开第三个标签

2)点击按钮进入下一级片段

3)单击另一个选项卡,例如第一个选项卡

4)返回到第3个标签(此时会在下一级fragment而不是第一级)

5) 按返回键

 02-19 02:16:46.427: E/AndroidRuntime(27697): java.lang.IllegalStateException: Fragment already added: PhotoGallery{43bc3500 #1 id=0x7f04003b Gallery}

如果我从第三个选项卡退出,如何返回第一级?我相信这会解决问题?感谢您的帮助

4

1 回答 1

0

您可以尝试replace()用一对add()and方法替换remove()方法。或者您可以尝试使用SupportFragmentManager

于 2014-02-18T18:27:04.240 回答