Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 后退按钮不可用';当我想返回到上一个片段时,我无法工作_Android_Android Fragments_Android Listfragment_Android Fragmentactivity - Fatal编程技术网

Android 后退按钮不可用';当我想返回到上一个片段时,我无法工作

Android 后退按钮不可用';当我想返回到上一个片段时,我无法工作,android,android-fragments,android-listfragment,android-fragmentactivity,Android,Android Fragments,Android Listfragment,Android Fragmentactivity,我在主要活动中管理两个片段 其中一个是ListFragment的子类,用于显示项目列表 其主要思想是,当用户点击其中一个项目时,导航到另一个列表视图,当用户点击“后退”按钮时,可以返回到上一个列表视图 传输到新列表的代码如下所示: FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); NewFragment newFragment = new NewFragment(); newFrag

我在主要活动中管理两个片段

其中一个是ListFragment的子类,用于显示项目列表

其主要思想是,当用户点击其中一个项目时,导航到另一个列表视图,当用户点击“后退”按钮时,可以返回到上一个列表视图

传输到新列表的代码如下所示:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
NewFragment newFragment = new NewFragment();
newFragment.setArguments(getIntent().getExtras());
transaction.replace(R.id.fragment_layout, newFragment);
transaction.addToBackStack(null);
transaction.commit();
但是,我只是简单地退出应用程序,而不是返回到上一个视图。
我做错了什么?

后退按钮关闭顶部活动,并且不会在片段历史中导航回去。与活动不同的是,您必须自己使用

,使用片段时,您必须显式地将内容添加到“后堆栈”中。基本上,当你的应用程序显示一个新的片段,比如你想返回到预览片段时,你调用

当用户按下back键时,框架将处理从后堆栈弹出的片段。如果需要更复杂的内容,可以覆盖片段的后退按钮。这个问题包括,


但是我确实调用了transaction.addToBackStack(null),它仍然不工作。我注意到一些类似的东西,它工作得很好,但后来我从supportfragmentmanager切换到了正常版本,我想android 4的非支持版本可能已经坏了…?哦,我想在我的情况下,将支持库与正常库混合是一个糟糕的情况。。因为我必须从支持片段管理器切换到支持PreferenceFragment。。。我想我得换回去了。。。然后做一些简单的变通。。。