FragmentManager.findFragmentByTag

replaceやaddした時に"tag1"などタグ名を付けていたと思うが、このタグ名からfindFragmentByTagで、Fragmentオブジェクトを探して取得することができる・・・。

FragmentManager | Android Developers

前回はMenuが7つあったが、

今回は5つに減らした・・・。

strings.xmlもそれに合わせた・・・。

Menu1の時には、もともとfragmentに"tag1"を付けている・・・。
今回は、トランザクション名はなしでnullに・・・。

Menu2は"tag2"・・・。

Menu3は"tag3"・・・。

Menu4では、fragmentManager.findFragmentByTagで"tag1"を探して、あったらFragmentオブジェクトがf1に帰ってくる・・・。
f1があれば"tag1 found."、nullだったら"tag1 not found."を表示・・・。
これを"tag2"、"tag3"についても行う・・・。

Menu5は前回のMenu7と同じ、1つ前に戻る・・・。

f:id:BG1:20160917111751p:plain

まず最初にMenu4・・・。

f:id:BG1:20160917111813p:plain

で、

f:id:BG1:20160917111834p:plain

で、

f:id:BG1:20160917111847p:plain

というように、まだFragmentを追加していないので、どれもnot found・・・。

f:id:BG1:20160917112001p:plain

Menu1を選択・・・。

f:id:BG1:20160917112016p:plain

赤い"tag1"が追加・・・。(onCreateView以降は省略・・・。)

f:id:BG1:20160917112146p:plain

Menu4を選択すると、

f:id:BG1:20160917112212p:plain

と"tag1 found."となり、

f:id:BG1:20160917112312p:plain

そして、

f:id:BG1:20160917112337p:plain

と、tag2とtag3は"not found."のまま・・・。

f:id:BG1:20160917112527p:plain

Menu2を選択、

f:id:BG1:20160917112546p:plain

緑"tag2"に変わり、

f:id:BG1:20160917112619p:plain

Menu4を選択、

f:id:BG1:20160917112656p:plain

tag1と、

f:id:BG1:20160917112714p:plain

tag2は"found."・・・。

f:id:BG1:20160917113346p:plain

tag3は"not found."・・・。

f:id:BG1:20160917112826p:plain

Menu3を選択、

f:id:BG1:20160917112933p:plain

青"tag3"に変わる・・・。

f:id:BG1:20160917113034p:plain

Menu4で、

f:id:BG1:20160917113055p:plain

そして、

f:id:BG1:20160917113442p:plain

そして、

f:id:BG1:20160917113140p:plain

と全部"found."になる・・・。

ここからはいろいろ省略するが、Menu5で緑"tag2"に戻ってからMenu4を押すと、

f:id:BG1:20160917113617p:plain

tag3は破棄されているのでまた"not found."になる・・・。

さらにMenu5で赤"tag1"に戻ってからMenu4を押すt、

f:id:BG1:20160917113815p:plain

tag2も"not found."・・・。

さらにMenu5で白い画面に戻ってから、Menu4を押すと、

f:id:BG1:20160917114012p:plain

tag1も含め、全て"not found."になる・・・。

Sample/android/FragmentManager/findFragmentByTag/src/FragmentManager at master · bg1bgst333/Sample · GitHub