1

AndroidアプリケーションにSherlockActionBarを実装していますが、Honeycomb以前のデバイスとの下位互換性を維持したいと考えています。

これはサンプルコードです:

package com.sherlockbar.example;

import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.widget.TextView;

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockActivity;

public class SherlockExampleActivity extends SherlockActivity implements ActionBar.TabListener {
    private TextView mSelected;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.tab_navigation);
        mSelected = (TextView) findViewById(R.id.text);

        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        for (int i = 1; i <= 3; i++) {
            ActionBar.Tab tab = getSupportActionBar().newTab();
            tab.setText("Tab " + i);
            tab.setTabListener(this);
            getSupportActionBar().addTab(tab);
        }
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction transaction) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction transaction) {
        mSelected.setText("Selected: " + tab.getText());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction transaction) {
    }
}

4.0デバイスの場合、これは完全に機能しますが、Honeycombの場合は機能しません-次のエラーが発生します。

E / AndroidRuntime(2363):原因:java.lang.IllegalStateException:Theme.Sherlock、Theme.Sherlock.Light、Theme.Sherlock.Light.DarkActionBar、またはその派生物を使用する必要があります。

マニフェストで私はそれらを確立しようとしましたが、それは提案されたリストにありません、そして私がそれを書いた場合、私はまだエラーを受け取ります。

Honeycombデバイスのバーを設定するにはどうすればよいですか?

よろしくお願いします!

4

2 に答える 2

3

4.0に対してコンパイルしていますか?正しくコンパイルするには、Android 4.0 SDKをターゲットにする必要があります(4.0未満で実行している場合でも)。

于 2012-04-20T13:41:56.940 に答える
1

ActionBarSherlockをライブラリプロジェクトとして設定していることを確認してください。そうするまで、プロジェクトはABSのリソースにアクセスできません。

于 2012-04-20T13:19:04.147 に答える