Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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 - Fatal编程技术网

Android 如何在按下按钮时返回到上一个片段

Android 如何在按下按钮时返回到上一个片段,android,android-fragments,Android,Android Fragments,我有两个片段,一个添加到backbackback,而另一个没有添加。考虑到我在第二个片段中,它没有被添加到堆栈中。顶部有一个关闭按钮。点击这个按钮,我应该回到前面的片段。如何做到这一点?我尝试过这样的方法:但这是可以做到的,只有将其添加到后堆栈中 public void onCloseBtnClicked(Fragment fragment, FragmentActivity activity) { if(fragment instanceof ImageFragment)

我有两个片段,一个添加到backbackback,而另一个没有添加。考虑到我在第二个片段中,它没有被添加到堆栈中。顶部有一个关闭按钮。点击这个按钮,我应该回到前面的片段。如何做到这一点?我尝试过这样的方法:但这是可以做到的,只有将其添加到后堆栈中

public void onCloseBtnClicked(Fragment fragment, FragmentActivity activity) {
    if(fragment instanceof ImageFragment)
        FragmentHelper.removeCurrentFragment(activity, fragment);
}

public static void removeCurrentFragment(final FragmentActivity activity, final Fragment fragment) {
    if (fragment != null && !fragment.isDetached()) {
        FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
        transaction.remove(fragment);
        transaction.commitAllowingStateLoss();
    }
}

这不起作用,因为我没有把它添加到后台。有什么方法可以实现这一点吗?

使用
getFragmentManager().popBackStack()
试试
getFragmentManager().popBackStack()

也来看看


如果使用
SupportFragment
请尝试
getSupportFragmentManager().popbackbackstack()

在使用新片段提交事务之前,请将其添加到backbackback:

transaction.addToBackStack(tag);
所以当你想回去的时候:

if (mFragmentManager.getBackStackEntryCount() > 1) {
        mFragmentManager.popBackStack();
    }
尝试使用getFragmentManager().popBackStack()