Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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 在单个活动中以三个片段进行popBackStack的最佳方式?_Android_Android Fragments_Fragment - Fatal编程技术网

Android 在单个活动中以三个片段进行popBackStack的最佳方式?

Android 在单个活动中以三个片段进行popBackStack的最佳方式?,android,android-fragments,fragment,Android,Android Fragments,Fragment,我遇到的问题是,当从其他片段进行popbackstack时,webservice正在第二次调用CreateView。我完全建议您在构建它们之前进行检查 如果你已经设法与你的碎片沟通。然后你可以使用这个简单的方法 private void changeFragment(Fragment frag, boolean saveInBackstack) { String backStateName = ((Object) frag).getClass().getName(); try

我遇到的问题是,当从其他片段进行popbackstack时,webservice正在第二次调用CreateView。

我完全建议您在构建它们之前进行检查

如果你已经设法与你的碎片沟通。然后你可以使用这个简单的方法

private void changeFragment(Fragment frag, boolean saveInBackstack) {
    String backStateName = ((Object) frag).getClass().getName();

    try {
        FragmentManager manager = getSupportFragmentManager();

        if (manager.findFragmentByTag(backStateName) == null) {
            //fragment not in back stack, create it.
            FragmentTransaction transaction = manager.beginTransaction();
            transaction.replace(R.id.container, frag, backStateName);

            if (saveInBackstack) {
                Log.d(TAG, "Change Fragment: addToBackTack " + backStateName);
                transaction.addToBackStack(backStateName);
            } else {
                Log.d(TAG, "Change Fragment: NO addToBackTack");
            }

            transaction.commit();
        } else {
            manager.popBackStack();
        }
    } catch (IllegalStateException exception) {
        Log.w(TAG, "Unable to commit fragment, could be activity as been killed in
    }
}

有什么问题吗?是的,我有一个列表片段,当我是弹出堆栈时,listview项中有问题。这是因为您的配置。我的答案应该能解决你的主要问题。