ActionBarのタブでFragmentを切り替える - @thorikiriのてょりっきの続きです。
別にSliptでなくても良いのですが、Fragmentを切り替えたら、それに対応するメニューも切り替えるってことはよくありますよね。
Activityだけでなく、Fragmentにもメニューを定義することが出来ます。なので、今回はFragmentにメニューを定義してみます。
大事なところは、onCreateで、setHasOptionsMenu(true)を呼び出してFragmentがメニューを保持していることを通知することと、onCreateOptionsMenuで、すでにあるメニューを一旦クリアしてから再度生成しなおすことですかね。
public class Tab1Fragment extends SherlockFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.tab1_fragment, container, false); retrun view; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); // OptionMenuがあることを通知する } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); // Fragmentごとなのでクリアする // メニューを作る } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case XXXXX: // TODO break; default: break; } } }
アプリを作ろう! ANDROID入門 (アプリを作ろう! シリーズ)
- 作者: WINGSプロジェクト,高江賢,山田祥寛
- 出版社/メーカー: 日経BP社
- 発売日: 2012/09/13
- メディア: 単行本
- 購入: 2人 クリック: 50回
- この商品を含むブログ (11件) を見る