为什么getFragmentManager().findFragmentByTag(tag)
总是显示空值。我正在使用以下代码调用Fragment:
FragmentManager fragmentManager =getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frame_step,fragment,tag).hide(SourceFragment.this).addToBackStack((SourceFragment.class.getName()));
fragmentTransaction.commit();
抱歉,它是getFragmentManager()
而不是getSupportFragmentManager()
。
如果我有片段A和片段B。我使用以下代码从A调用片段B
FragmentManager fragmentManager =getFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frame_step,TAG).hide(SourceFragment.this).addToBackStack((SourceFragment.class.getName()));
fragmentTransaction.commit();
现在在片段B中,我有EditText,并且在其中输入了“ Hello”,如果我按片段B中的“后退”按钮,则根据getSupportFragmentManager()。popBackStack();它将恢复片段A
现在,如果我再次从Fragment A调用Fragment B,我希望不会再次创建FragmentB,但仍然可以在EditText中看到“ Hello”。
注意-我不想为此使用变量或共享首选项,因为我有多个具有多个视图的片段,例如大表格。有没有什么可以从恢复状态中调用片段而不是再次调用它,或者我是否可以检查此片段是否已经创建。提前致谢
ft.show(fragment)
也不起作用。有什么需要使它起作用的吗?