FragmentをActivityに貼付ける

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

ActivityにFragmentを貼付ける

Fragmentクラスを作ったら、次はActivityに貼付けてみましょう。

まずはMainActivityのonCreate()メソッドを下記のようにします。android-support-v4を使った例なので、FragmentActivityになっています。

public class MainActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        if (savedInstanceState == null) {
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction transaction = manager.beginTransaction();
            
            transaction.replace(R.id.main, TitleFragment.newInstance());
            
            transaction.commit();
        }
    }
}

setContentView()で設定しているレイアウトは下記の通りです。idをR.id.mainにしています。FrameLayoutの方がホントはいいのかもしれません。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/main">
</RelativeLayout>

savedInstanceState==nullの時のみ、R.id.mainの部分にFragmentを貼付ける(=replaceする)処理を行います。Fragmentの貼付け/張り替えはFragmentManager経由で行います。android-support-v4を使っている場合はgetSupportFragmentManager()メソッドで、API Level 11以上のActivityの場合はgetFragmentManager()メソッドでFragmentManagerインスタンスを取得します。

Fragmentのreplace等はトランザクションで行います。FragmentManagerのbeginTransaction()メソッドでtransactionインスタンスを取得します。replaceメソッドで「このidに、このFragmentで置き換え」を指示し、commit()メソッドでコミットします。

これで実行した際、ちゃんとタイトル画面のレイアウトが表示されたらOKです。

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