繁体   English   中英

ActionBarSherlock和3.0之前的Android设备

[英]ActionBarSherlock and pre 3.0 Android devices

我正在为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.0吗? 您需要定位Android 4.0 sdk才能正确编译(即使您运行的是<4.0)。

确保已将ActionBarSherlock设置为库项目。 在您这样做之前,您的项目将无法访问ABS中的资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM