Android片段导航,循环路径

Android片段导航,循环路径,android,android-fragments,navigation,Android,Android Fragments,Navigation,好的,这是我的问题,我有三个片段,我们叫它们[1],[2]和[3] 以下是我希望他们遵循的路径: [1] >[2]>[3]>(后退键)>[1] 出于某种原因,这只起作用一次,当我尝试进入第二轮时,会发生以下情况: [1] >[2]>[3]>(后退键)>[1]>[2]>[3]>(后退键)>[3]>(后退键)>退出 也就是说,当我第二次进入[3]并按下“后退”按钮时,如果我再次按下,我的应用程序将退出到android,什么也不会发生。(从不返回到[1]) 我很确定这与addToBackSack方法有

好的,这是我的问题,我有三个片段,我们叫它们[1],[2]和[3]

以下是我希望他们遵循的路径:

[1] >[2]>[3]>(后退键)>[1]

出于某种原因,这只起作用一次,当我尝试进入第二轮时,会发生以下情况:

[1] >[2]>[3]>(后退键)>[1]>[2]>[3]>(后退键)>[3]>(后退键)>退出

也就是说,当我第二次进入[3]并按下“后退”按钮时,如果我再次按下,我的应用程序将退出到android,什么也不会发生。(从不返回到[1])

我很确定这与addToBackSack方法有关,但我不能完全确定

这是我的密码

[A]

[乙]

public void onItemClick(AdapterView父视图、视图、int位置、,
长id){
Fragment Fragment=新的[C]片段();
FragmentManager fm=this.getActivity().getFragmentManager();
FragmentTransaction=fm.beginTransaction();
事务.replace(R.id.container,fragment);
commit();
}
我没有在[B]上使用addToBackStack,因为我不想让android记住这个事务,对吗


谢谢

好的!找到答案了

public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    Toast.makeText(this.getActivity(), "New order created",
            Toast.LENGTH_SHORT).show();
    Fragment fragment = new OrderFragment();
    FragmentManager fm = this.getActivity().getFragmentManager();
    fm.popBackStack();
    FragmentTransaction transaction = fm.beginTransaction();
    transaction.addToBackStack(null);
    transaction.replace(R.id.container, fragment);
    transaction.commit();

}
public void onItemClick(AdapterView父视图、视图、int位置、,
长id){
Toast.makeText(this.getActivity(),“新建订单”,
吐司。长度(短)。show();
Fragment Fragment=新的OrderFragment();
FragmentManager fm=this.getActivity().getFragmentManager();
fm.popbackbackstack();
FragmentTransaction=fm.beginTransaction();
transaction.addToBackStack(空);
事务.replace(R.id.container,fragment);
commit();
}

函数popBackStack()实现了这一点!:)我还不确定这是怎么回事。但确实如此

一般来说,使用
片段构建导航层次结构可能非常棘手,并且您经常会遇到与您描述的类似的问题。考虑只使用<代码>活动<代码>在你的应用程序中创建导航层次结构,并使用<代码>片段<代码>来显示那些<代码>活动中的内容。@ XVAVKAPELL在OP的问题中用“活动”替换“片段”,然后告诉我你的“建议”是如何解决他的问题的。新的ADT插件有点鼓励您在任何时候都使用片段(去尝试一下,默认情况下它会创建一个包含片段的活动)。我正在使用活动来分离应用程序登录|主|设置的不同部分。但在这些部分中,我使用片段。一定有办法让导航正确!
    public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {

    Fragment fragment = new [C]Fragment();
    FragmentManager fm = this.getActivity().getFragmentManager();

    FragmentTransaction transaction = fm.beginTransaction();

    transaction.replace(R.id.container, fragment);

    transaction.commit();

}
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    Toast.makeText(this.getActivity(), "New order created",
            Toast.LENGTH_SHORT).show();
    Fragment fragment = new OrderFragment();
    FragmentManager fm = this.getActivity().getFragmentManager();
    fm.popBackStack();
    FragmentTransaction transaction = fm.beginTransaction();
    transaction.addToBackStack(null);
    transaction.replace(R.id.container, fragment);
    transaction.commit();

}