这是我的问题。
我基本上使用的片段包含有关某个地方的一些信息,以及同一城市中所有其他地方的列表。 通过单击列表中的某个元素,您可以访问同一片段的其他实例,其中包含与您单击的元素相关的信息。
问题是,如果后台堆中包含两个包含相同位置信息的片段,则后台堆栈不再起作用。
这是我创建新片段的方式:
Bundle bundle = new Bundle();
bundle.putString("some data", "some data");
Fragment contentFragment = new CoreFragment(id);
contentFragment.setArguments(bundle);
FragmentManager fm = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.actmain_core, contentFragment, "corefragment");
fragmentTransaction.addToBackStack(contentFragment.getClass().getName());
fragmentTransaction.commit();
如果所有片段使用不同的数据,它将完美地工作。但是,如果我将一个片段添加到backstack中,并且已经在backstack中存在的片段中使用了数据,那么当我按下后退按钮来访问它时,它将不会显示。
如何解决此问题?如何管理堆栈及其精确副本在后台堆栈中存在但需要区分的情况?