日々精進

新しく学んだことを書き留めていきます

「java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim' on a null object reference」エラー

原因は、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保持出来るのか。。