gpt4 book ai didi

android - 获取返回堆栈中的最后一个 fragment

转载 作者:可可西里 更新时间:2023-11-01 18:46:05 26 4
gpt4 key购买 nike

我看过这篇文章,但此处发布的解决方案对我不起作用:get the latest fragment in backstack

当我用一个 fragment 替换另一个 fragment 时,我使用:

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();

ft.replace(android.R.id.tabcontent, fragment, tag);
ft.addToBackStack(null);

ft.commit();

因此,请注意我正在使用标签来检测任何 fragment 。

我的问题具体如下:

假设我有 fragment_A、fragment_B 和 fragment_C。我可以从 fragment_A 或 fragment_B 到达 fragment_C 并且根据调用的父级我必须做一些特别的事情。所以,我再次需要恢复后台堆栈中的最后一个 fragment 。

当我尝试做的时候:

FragmentManager fm = getSupportFragmentManager();

for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){
String ide = fm.getBackStackEntryAt(entry).getName();
Log.i("TAG", "Found fragment: " + ide);
}

我得到空值。如果我改用 getId() ,我会得到数字,所以我尝试这样做:

int id = fm.getBackStackEntryAt(entry).getId();
Fragment fragment = fm.findFragmentById(id);
Log.i("TAG", "Found fragment: " + fragment.getTag());

但我得到空值..我不知道还能做什么,所以任何帮助将不胜感激。

编辑:我在 onBackPressed() 中调用此方法 { ...}

最佳答案

如果您正在使用 BackStackEntry.getName(),它应该是:

ft.replace(android.R.id.tabcontent, fragment, tag);
ft.addToBackStack(tag);

关于android - 获取返回堆栈中的最后一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17562067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com