0

このチュートリアルActionBarSherlockからインストールしました。問題は、Sherlock をインストールしたときに、バージョン 2.2 で ActionBar がまだ表示されないことです。次に、Java ファイルから ActionBar を実装しようとしましたが、少なくとも 3.0 バージョンが必要なため、アプリを起動するとエラーが発生しました。主なアクティビティは です。私の質問は、どのように実装できますか?また、それを行う必要がありますか?ListActivitySherlockActivityListAcivty

4

3 に答える 3

1

まず、マニフェストでそのテーマを宣言する必要があります

   <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;
        }
    }
于 2013-08-20T10:34:54.683 に答える
0

これをマニフェストで使用したいのですが、これを適用しましたか?

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);
于 2013-08-20T10:21:37.317 に答える
0

このビデオ チュートリアルを確認してください: http://www.youtube.com/watch?v=1S9f7GQlWDg

SherlockActivity から拡張する必要があります。

ListActivity などの他のクラスから拡張する場合、シャーロック アクション バーを使用することはできません。ListActivity と SherlockActivity の継承階層を作成する回避策があるかもしれませんが、非常に複雑になります。

ListActivity を避ける余裕がない場合は、マニフェストで API レベル (12 だと思います) を上げて、Android API が提供するアクション バーを使用できます。

于 2013-08-20T10:20:23.210 に答える