Fragment.getTargetFragment

Fragment.getTargetFragmentで、登録したFragmentを取得できる。

Fragment  |  Android Developers

前回はaddだったので、Fragment1のインスタンスが残っている状態のため参照することが出来たが、replaceの場合はどうだろうか。
Fragment1.javaで、

addをreplaceに置き換える。
また、customMethodでgetActivityがnullかどうか調べる。
Fragment2.javaは、

targetFragmentが取得できるのかは念入りにチェックしないといけないし、その上でcustomMethodを呼ぶ。

起動時
起動時

起動時。
Button1を押すと、

replaceなので、今度は文字がダブつかない。
replaceなので、今度は文字がダブつかない。

replaceなので、今度は文字がダブつかない。
Button2を押すと、

予想に反して、targetFragmentはnullにならずに取得できる。
予想に反して、targetFragmentはnullにならずに取得できる。

予想に反して、targetFragmentはnullにならずに取得できる。

ただし、customMethodの中で、getActivityがnullになっている。
ただし、customMethodの中で、getActivityがnullになっている。

ただし、customMethodの中で、getActivityがnullになっている。
つまり、Fragment1のインスタンスは生きているが、Activityに紐づいておらず、取り外されたということかな。

Sample/android/Fragment/getTargetFragment/src/Fragment at master · bg1bgst333/Sample · GitHub