我正在为 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 设备的标准?
提前非常感谢!