このチュートリアルActionBarSherlock
からインストールしました。問題は、Sherlock をインストールしたときに、バージョン 2.2 で ActionBar がまだ表示されないことです。次に、Java ファイルから ActionBar を実装しようとしましたが、少なくとも 3.0 バージョンが必要なため、アプリを起動するとエラーが発生しました。主なアクティビティは です。私の質問は、どのように実装できますか?また、それを行う必要がありますか?ListActivity
SherlockActivity
ListAcivty
3 に答える
まず、マニフェストでそのテーマを宣言する必要があります
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light">
次に、アクションバーが必要な各アクティビティで、アクションバーシャーロックに拡張する必要があります。
public class xxxx extends SherlockActivity {
リストビューの場合、これを使用してアクションバーのシャーロックのものを使用できます
... extends SherlockListActivity {
アクションバーの sherlock のメニュー ボタンを使用する場合は、これで作業は終了です。
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.MenuOfButtons, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.idOfButton:
//action done
break;
}
return true;
}
}
これをマニフェストで使用したいのですが、これを適用しましたか?
android:theme="@style/Theme.Sherlock.Light"
さらに、SherlockActivity を拡張するときに Main Activity でこれを宣言します。
final ActionBar ab = getSupportActionBar();
// set defaults for logo & home up
ab.setDisplayHomeAsUpEnabled(false);
ab.setDisplayUseLogoEnabled(true);
ab.setDisplayShowTitleEnabled(true);
このビデオ チュートリアルを確認してください: http://www.youtube.com/watch?v=1S9f7GQlWDg
SherlockActivity から拡張する必要があります。
ListActivity などの他のクラスから拡張する場合、シャーロック アクション バーを使用することはできません。ListActivity と SherlockActivity の継承階層を作成する回避策があるかもしれませんが、非常に複雑になります。
ListActivity を避ける余裕がない場合は、マニフェストで API レベル (12 だと思います) を上げて、Android API が提供するアクション バーを使用できます。