gpt4 book ai didi

java - 为什么 getSupportFragmentManager().findFragmentByTag(tag) 总是显示 null 值?

转载 作者:行者123 更新时间:2023-12-01 21:16:21 24 4
gpt4 key购买 nike

为什么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()

如果我有 fragment A 和 fragment B。我使用以下代码从 A 调用 fragment B

FragmentManager fragmentManager =getFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();


fragmentTransaction.add(R.id.frame_step, fragment,TAG).hide(SourceFragment.this).addToBackStack((SourceFragment.class.getName()));
fragmentTransaction.commit();

现在在 fragment B 中,我有 EditText 并且已在其中输入“Hello”,如果我按 fragment B 中的后退按钮,则根据 getSupportFragmentManager().popBackStack();它将恢复 fragment A

现在,如果我再次从 fragment A 调用 fragment B,我希望 FragmentB 不会再次创建,并且我仍然可以在 EditText 中看到“Hello”。

注意 - 我不想为此使用变量或共享首选项,因为我有多个具有多个 View 的 fragment ,例如大表单。有没有什么可以从恢复状态调用 fragment 而不是再次调用它,或者我是否可以检查该 fragment 是否已经创建。提前致谢另外 ft.show(fragment) 也不起作用。需要什么才能让它发挥作用吗?

最佳答案

由于问题相当模糊,我最好的猜测是:

getSupportFragmentManager().findFragmentByTag(tag);

关于java - 为什么 getSupportFragmentManager().findFragmentByTag(tag) 总是显示 null 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58871193/

24 4 0
文章推荐: sql-server - SQL Server RowVersion/时间戳 - 比较
文章推荐: angular - 使用 Ionic3 时出现“不支持”错误
文章推荐: java - HashMap 中的 ArrayList 之谜