gpt4 book ai didi

android - fragment 返回指定 fragment

转载 作者:行者123 更新时间:2023-11-29 19:00:20 24 4
gpt4 key购买 nike

我正在使用 fragment 开发一个 Android 应用程序。我有五个 fragment 。那些是 A,B,C,D,E 。我的第一个 fragment A 是主要 fragment 。首先,我从 A 遍历到 B,然后从 B 遍历到 C。在 C 中,当我按下后退按钮时,我希望它返回到 A。我使用下面的代码从 A 调用 B fragment 。同样的方法用于调用另一个 fragment 。

FragmentB fragment = new FragmentB();
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction().addToBackStack("tag");
transaction.replace(R.id.content_frame, fragment);
transaction.commit();

Activity中的后退按钮代码如下

@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}

}

如何解决这个问题,请帮助我。

最佳答案

你可以试试这个:

@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} FragmentManager fragmentManager = getSupportFragmentManager();
int backCount = fragmentManager.getBackStackEntryCount();
System.out.println("back count " + backCount);

if(backCount==0)
{
actionBar.setTitle("Home");
//Here you can show alert dialog for exit the app?
}
/* else if(backCount==1)
{

}*/
else if(backCount==1)
{
fragmentManager.popBackStack();
// setTitle("Home");
navigationView.getMenu().getItem(0).setChecked(true);
actionBar.setTitle("Home");
}
else if(backCount>1)
{

for(int i=fragmentManager.getBackStackEntryCount();i>=1;i--)
{
fragmentManager.popBackStack();
System.out.println("back count loop" + fragmentManager.getBackStackEntryCount());
}
actionBar.setTitle("Home");
}
}

关于android - fragment 返回指定 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49248754/

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