Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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 FragmentManager getFragments返回null_Android_Android Fragments_Android Support Library - Fatal编程技术网

Android FragmentManager getFragments返回null

Android FragmentManager getFragments返回null,android,android-fragments,android-support-library,Android,Android Fragments,Android Support Library,我需要一些帮助来理解FragmentTransactions和FragmentManager的基础知识。在配置更改(屏幕旋转)和调用后,每当我重新创建活动时,我都会抛出一个NPE List<Fragment> fragments = getSupportFragmentManager().getFragments(); boolean pending = getSupportFragmentManager().executePendingTransactions();

我需要一些帮助来理解FragmentTransactions和FragmentManager的基础知识。在配置更改(屏幕旋转)和调用后,每当我重新创建活动时,我都会抛出一个NPE

    List<Fragment> fragments = getSupportFragmentManager().getFragments();
    boolean pending = getSupportFragmentManager().executePendingTransactions();
    Log.d(LOG_TAG, "Any pending : " + Boolean.toString(pending));
    Log.d(LOG_TAG, "Size : " + Integer.toString(fragments.size()));
    for(Fragment fragment : fragments){
        if(fragment != null & fragment.isVisible()){
            Log.d(LOG_TAG, "Fragment Tag : " + fragment.getTag());
        }
    }
stacktrace在下面一行打印一个NPE,因为片段为null

if(fragment != null & fragment.isVisible()){
这是我的困惑。在重新创建活动之前,管理器中有两个片段。我附加第三个片段,然后移除它,让我回到应该是两个片段的地方。然而,经理说列表中有三个片段。为什么会这样?我可以看到删除的片段通过它的onDestroy()。管理器是否保留片段的空引用?

list.size()
也统计
null
条目

那么这个

ArrayList<String> entries = new ArrayList<String>();
entries.add(null);
Log.d("HomeFragment", "Entries " + entries.size());
list.size()

那么这个

ArrayList<String> entries = new ArrayList<String>();
entries.add(null);
Log.d("HomeFragment", "Entries " + entries.size());
list.size()

那么这个

ArrayList<String> entries = new ArrayList<String>();
entries.add(null);
Log.d("HomeFragment", "Entries " + entries.size());
list.size()

那么这个

ArrayList<String> entries = new ArrayList<String>();
entries.add(null);
Log.d("HomeFragment", "Entries " + entries.size());

你知道为什么列表中有空条目吗?我的印象是,调用FragmentTransaction.remove()将删除对fragment.Fair的引用。谢谢你的回答!你知道为什么列表中有空条目吗?我的印象是,调用FragmentTransaction.remove()将删除对fragment.Fair的引用。谢谢你的回答!你知道为什么列表中有空条目吗?我的印象是,调用FragmentTransaction.remove()将删除对fragment.Fair的引用。谢谢你的回答!你知道为什么列表中有空条目吗?我的印象是,调用FragmentTransaction.remove()将删除对fragment.Fair的引用。谢谢你的回答!