kojiko-android’s blog

開発中にハマった時の解決策や、忘れがちなことを残しておきます。

Tagからフラグメントを探す

静的に組み込んだフラグメントをタグで探す方法です。

レイアウトリソースの当該フラグメントに、任意のタグを付けます。

識別にオブジェクトも使うことができますが、参照を取得するだけならテキストをキーのように指定するのが簡単です。

 <fragment
  android:tag="key"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:name="package"
    android:id="@+id/myfragment" />
アクティビティからは、FragmentManagerのfindFragmentByTagで取得できます。
MyFragment fragment = (MyFragment)getSupportFragmentManager().findFragmentByTag("key");


参照がnullだった場合の処理も、念のためにしておいたほうが良いと思います。
フラグメントのパブリックなメソッドも呼び出せるようになります。