Android3.0(Honeycomb)以上で使えるアクションバー。

2.xの場合は、以前はActionBarSherlocというライブラリーを使っていたと思いますが、

AndroidのサポートライブラリがRev18になって、2.xでもActionBarが使えるようになりました。

で、早速2.3.3で導入しようとして、ちょっとしたことでハマってしまったので、対処時のメモを書いておきます。


まずは、一般的な導入。

ライブラリはv7を使います。

導入に際しては、EclipseでV7のライブラリをインポートしておきます。

対象になるのは、/Android/android-sdk/extras/android/support/v7/appcompat

これをインポートします。

その際、注意するのは、ライブラリのあるドライブと、ワークスペースのあるドライブが違う場合は、

"Copy projects into workspace"にチェックを付けておきます。

ドライブ違いだと、android:themeを変更する際に、

No resource found that matches the given name ....というエラーになったりするからです。

次に、Package Explorerから、Properties -> Android -> Libraryから「android-support-v7-appcompat」を選んで「Add」。

AndroidManifest.xmlを修正

<activityで、android:theme="@style/Theme.AppCompat.Light"に変更。


MainActivityを変更

追加
import android.support.v7.app.ActionBarActivity;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.internal.view.menu.MenuItemImpl;


extendsは、ActionBarActivityに変えます。


定義
MenuItemImpl mi;


onCreateOptionsMenuに以下を記述

MenuItem item = menu.add("HELP").setIcon(android.R.drawable.ic_menu_help);
MenuItemCompat.setShowAsAction(item,MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);

以上です。