ActionBarSherlock ではなくSDKについてくるサポートライブラリを使う方法。
SDK は C:android-sdks にインストールされているとします。
開発はeclipse+ADTを使います。
サポートライブラリの準備
SDK マネージャーを開き、”Android Support Librarly” がインストールされているか確認。
revision 18 未満の場合はアップデート
Eclipse で File → Import
“Existing Projects into Workspace” を選択 → Next
“Select root directory” にチェックを入れ、”C:android-sdksextrasandroidsupportv7appcompat” を指定
“Copy projects into workspace” にチェックを入れる
→ Finish
この時点では 「The project cannot be built until build path errors are resolved」 などとエラーが出ます。
Eclipse の Package Explorer で、 インポートしたプロジェクトの “libs” を広げ、
中にある android-support-v4.jar と android-support-v7-appcompat.jarをそれぞれ右クリックし、Build Path → Add to Build Path
この時点でエラーは消えてるはず。
Pakce Explorer で、 インポートしたプロジェクトを右クリック → Build Path → Configure Build Path
“Order and Export” タブを開き、先ほど追加した 2つの jar にチェックを入れる。
“com.android.ide.eclipse.adt.DEPENDENCIES” のチェックを外す。
アプリケーションの作成
新規にAndroidアプリケーションを作成。
“Minimum Required SDK” には API 7 以上を選択します。
Activity のテンプレートは “Blank Activity” にします。
Navigation Type は None しか選べませんが、後でコードを追加することで アクションバーにタブを配置したり、
スワイプでタブを切り替えたりできるようにできます。
Project Explorer で、 今作ったプロジェクトを右クリック → Properties
左のペインで “Android” を選択。
“Library” ペインで Add
“android-support-v7-appcompat” にチェックを入れる → OK
AndroidManifest.xml を編集
activity に theme を指定します。
<activity
android:name="com.example.supportactionbarexample.MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
Activity のコードを編集。
android.app.Activity ではなく android.support.v7.app.ActionBarActivity を継承する
package com.example.supportactionbarexample; import android.os.Bundle; import android.app.Activity; import android.support.v7.app.ActionBarActivity; import android.view.Menu; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
うまくいけば、アクションバーが表示されるようになります。