ActionBarに画像タブを表示させる
こんな感じに画像付タグボタンを作成するにはメニューレイアウトを変更します。
iPhoneのタブ切替みたいな機能がAndroidにもないのかなと探していたところ
発見しました。
まずはメニューレイアウトxmlの
/res/menu/main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_map" android:orderInCategory="100" android:icon="@android:drawable/ic_menu_mapmode" android:showAsAction="ifRoom" android:numericShortcut="1" android:title="@string/action_settings"/> <item android:id="@+id/action_list" android:orderInCategory="100" android:icon="@android:drawable/ic_menu_today" android:showAsAction="ifRoom" android:numericShortcut="2" android:title="@string/action_settings"/> <item android:id="@+id/action_settings" android:orderInCategory="100" android:icon="@android:drawable/ic_dialog_info" android:showAsAction="ifRoom" android:numericShortcut="3" android:title="test"/> </menu>
タグボタンを押したときの処理は
Activity.onMenuItemSelected()が行います。
受け取ったidによって処理を切り替えます。
MainActivity.java
public class MainActivity extends Activity { @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int id = item.getItemId(); // 押したアイテムのidで切り替える switch(id) { case R.id.action_map: Toast.makeText(this, "Map", Toast.LENGTH_SHORT).show(); break; case R.id.action_list: Toast.makeText(this, "List", Toast.LENGTH_SHORT).show(); break; case R.id.action_settings: Toast.makeText(this, "Setting", Toast.LENGTH_SHORT).show(); break; default: break; } return true; } }
ちなみにActionBarを下部に表示する場合は、
AndroidManifest.xmlの
android:uiOptions="splitActionBarWhenNarrow"
を追加する。