Android FragmentManager getFragments返回null
我需要一些帮助来理解FragmentTransactions和FragmentManager的基础知识。在配置更改(屏幕旋转)和调用后,每当我重新创建活动时,我都会抛出一个NPEAndroid 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();
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的引用。谢谢你的回答!