ActionBarのタブを使用する


ActionBarにMenuを表示するではメニューの使用方法を紹介しましたが、今回はタブの使用方法を紹介します。
ActionBarのタブはFragmentの切り替えなどに使用される非常に重要な機能です。

詳細は以下から。

NavigationMode

ActionBarでタブを表示する為には、NavigationModeをNAVIGATION_MODE_TABSにする必要があります。

NavigationModeをNAVIGATION_MODE_TABSにするにはActionBar#setNavigationModeメソッドを使用します。

// AcionBarを取得
ActionBar bar = getActionBar();
// NvigationModeをNAVIGATION_MODE_TABSに設定
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

NavigationModeにはNAVIGATION_MODE_TABS以外のものもあります。

以下にNavigationModeの一覧を記述します。

NAVIGATION_MODE_LIST リスト構造のNavigationを提供します
NAVIGATION_MODE_STANDARD 一般的なNavigationです
NAVIGATION_MODE_TABS タブのNavigationを提供します

タブを追加する

NavigationModeの設定をすれば、後はタブを追加していくだけです。

タブの追加にはActionBar#addTabメソッドを使用します。

bar.addTab(bar.newTab().setText("Tab1"));

上記のコードではActionBar#newTabメソッドで新しいタブを作成し、ActionBar.Tab#setTextメソッドでタブに表示するテキストを指定しています。

ActionBar.TabListener

ActionBar.TabListenerを使用すると、タブが選択された場合、タブの選択が外れた場合、タブが2度目以降に選択
された場合のそれぞれの状態に処理を実行させることができます。

以下にActionBar.TabListenerを実装した場合に必ず実装しなければならないメソッドの一覧を記述します。

onTabSelected このメソッド内に記述された処理は、タブが選択された場合に実行されます
onTabUnselected このメソッド内に記述された処理は、タブの選択が外れた場合に実行されます
onTabReselected このメソッド内に記述された処理は、タブが2度目以降に選択された場合に実行されます

ActionBar.TabListenerはActionBar#setTabListenerを使用して、ActionBarに設定します。

bar.setTabListener("TabListenerが実装されたクラス");

指摘を頂いた為、2011/6/15修正
※min SDKもしくは、targetSdkVersionを”11″に設定しておかないとActionBarは表示されませんので注意が
必要です。
また、min SDKを”11″にしてしまうと、API Level”10″以下の端末で動かないアプリになってしまいますので、
API Level”10″以下の端末もサポートする場合はtargetSdkVersionに”11″を設定します。
こうしておくことで、API Level”11″以降の端末で実行された場合のみActionBarが表示されるようになります。

2 Comments