首页 > 解决方案 > 从 Activity 到 Fragment 的后退

问题描述

我有一个BaseActivity,它具有以下流程FragmentA -> Fragment B -> FinalActivity。现在我想通过从FinalActivityFragmentA的后退按钮单击来进行回

BaseActivity我调用FragmentA之类的,

Fragment selectedFragment = FragmentA .newInstance();
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container_fragment, selectedFragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.addToBackStack("Some String");
transaction.commit();

FragmentA我称FragmentB 之类的,

Fragment selectedFragment = FragmentB.newInstance();
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container_fragment, selectedFragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.addToBackStack("Some String");
transaction.commit();

FragmentBFinalActivity我这样称呼,

startActivityForResult(FinalActivity.newIntent(getActivity()), 1);

现在从FinalActivity后退按钮我想显示FragmentA

帮助我如何导航。

标签: androidandroid-fragmentsfragmentonbackpressed

解决方案


Fragment selectedFragment = FragmentB.newInstance();
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container_fragment, selectedFragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.commit();

如果你想回到片段 A那么你不需要添加下面给出的
行当 relpace 片段从片段 A片段 B只需从你的代码中删除这个给定的行

transaction.addToBackStack("Some String");

并像这样更改开始活动的代码

startActivity(getActivity(),FinalActivity.class);

推荐阅读