Android 在同一个片段上再次返回片段到活动

Android 在同一个片段上再次返回片段到活动,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,我有一个包含4个片段的活动。在片段3上有一个按钮,当我点击该按钮时,我转到其他一些活动(如TestActivity)。我使用此代码从片段3转到该测试活动: startActivity(new Intent(getActivity(), TestActivity.class)); 当我按下TestActivity上的back按钮时,它会将我重定向到主活动的第一个片段(默认)。我希望当用户按下TestActivity返回到片段3时。请建议我如何实现这种行为。谢谢首先,您应该知道片段和活动后堆栈之间

我有一个包含4个片段的活动。在片段3上有一个按钮,当我点击该按钮时,我转到其他一些活动(如TestActivity)。我使用此代码从片段3转到该测试活动:

startActivity(new Intent(getActivity(), TestActivity.class));

当我按下TestActivity上的back按钮时,它会将我重定向到主活动的第一个片段(默认)。我希望当用户按下TestActivity返回到片段3时。请建议我如何实现这种行为。谢谢

首先,您应该知道
片段
活动
后堆栈之间有区别

在更改
片段
时,应使用add
addToBackStack(“name”)
,如下所示:

KOTLIN:

 requireActivity().supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,SecondFragment())
        .addToBackStack("first")
        .commit()
supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,Firstfragment())
        .addToBackStack("first")
        .commit()
         getFragmentManager().beginTransaction().
         replace(R.id.framelayout_main_fragmentContainer, Firstfragment()).
         addToBackStack("first").commit();
片段中

 requireActivity().supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,SecondFragment())
        .addToBackStack("first")
        .commit()
supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,Firstfragment())
        .addToBackStack("first")
        .commit()
         getFragmentManager().beginTransaction().
         replace(R.id.framelayout_main_fragmentContainer, Firstfragment()).
         addToBackStack("first").commit();
活动中

 requireActivity().supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,SecondFragment())
        .addToBackStack("first")
        .commit()
supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,Firstfragment())
        .addToBackStack("first")
        .commit()
         getFragmentManager().beginTransaction().
         replace(R.id.framelayout_main_fragmentContainer, Firstfragment()).
         addToBackStack("first").commit();
JAVA:

 requireActivity().supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,SecondFragment())
        .addToBackStack("first")
        .commit()
supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,Firstfragment())
        .addToBackStack("first")
        .commit()
         getFragmentManager().beginTransaction().
         replace(R.id.framelayout_main_fragmentContainer, Firstfragment()).
         addToBackStack("first").commit();

首先,您应该知道
fragment
activity
后堆栈之间有区别

在更改
片段
时,应使用add
addToBackStack(“name”)
,如下所示:

KOTLIN:

 requireActivity().supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,SecondFragment())
        .addToBackStack("first")
        .commit()
supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,Firstfragment())
        .addToBackStack("first")
        .commit()
         getFragmentManager().beginTransaction().
         replace(R.id.framelayout_main_fragmentContainer, Firstfragment()).
         addToBackStack("first").commit();
片段中

 requireActivity().supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,SecondFragment())
        .addToBackStack("first")
        .commit()
supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,Firstfragment())
        .addToBackStack("first")
        .commit()
         getFragmentManager().beginTransaction().
         replace(R.id.framelayout_main_fragmentContainer, Firstfragment()).
         addToBackStack("first").commit();
活动中

 requireActivity().supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,SecondFragment())
        .addToBackStack("first")
        .commit()
supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,Firstfragment())
        .addToBackStack("first")
        .commit()
         getFragmentManager().beginTransaction().
         replace(R.id.framelayout_main_fragmentContainer, Firstfragment()).
         addToBackStack("first").commit();
JAVA:

 requireActivity().supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,SecondFragment())
        .addToBackStack("first")
        .commit()
supportFragmentManager.beginTransaction()
        .replace(R.id.framelayout_main_fragmentContainer,Firstfragment())
        .addToBackStack("first")
        .commit()
         getFragmentManager().beginTransaction().
         replace(R.id.framelayout_main_fragmentContainer, Firstfragment()).
         addToBackStack("first").commit();

它有用吗?!!它有用吗?!!