原因は、fragmentをremoveすると、一瞬mFragmentManager.getFragments()で取得出来るListの要素にnullがある状態になるため。 以下のコードだとfragmentをaddしたりremoveしたりを繰り返すとNPEで落ちることがある。
for (Fragment fragment : mFragmentManager.getFragments()) {
ft.remove(fragment);
}
以下のようにすると直る。
for (Fragment fragment : mFragmentManager.getFragments()) {
if (fragment != null) {
ft.remove(fragment);
}
}
てかListの要素としてnull保持出来るのか。。