Fragmentクラスを作る

ツイート このエントリーをはてなブックマークに追加
1つ上へ / ブログトップへ

Fragmentクラスを作る

Activityを用いていた時は、MainActivityのようにActivityクラスを作っていましたよね?Fragmentでも同様に、Fragmentを継承したクラスを作っていきます。

今回は、アプリのタイトル画面用のTitleFragmentを作ってみます。

最低限、実装すべきメソッドは?

Activityの時は、onCreate(Bundle)メソッドだけ実装していればとりあえず動きました。Fragmentの場合はonCreateView()メソッドを実装しておけば画面は出ます。

public class TitleFragment extends Fragment {
    public static TitleFragment newInstance() {
        TitleFragment fragment = new TitleFragment();
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_title, container, false);
    }
}

onCreateView()メソッドでは、引数のLayoutInflaterを使ってレイアウトXMLからViewを生成してreturnするだけでOKです。inflate()メソッドの使い方は上記の通り、第2引数はonCreateView()メソッドの引数のcontainerを、第3匹数はfalseを指定する必要があります。これ以外のパターンでinflate()メソッドを用いるとクラッシュします。

と、ここでstaticメソッドの存在に気づいた方もいるでしょう。これは、Fragmentのお決まりみたいなもので、直接newで生成するのではなく、このstaticメソッド経由で行うようにしておきます。直接newしないほうがいい理由は後のエントリーで紹介します。

ここまでは、そんなに難しくないですよね?

1つ上へ / ブログトップへ