我正在使用ActionBarSherlock,因为我想为许多设备创建一个统一的。我想支持一些Android 2版本的设备。为了测试,我有一个
-LG Nexus 4 - 运行Android 4.2.2 -Samsung Galaxy Ace - 运行Android 2.3.3
要开始使用abs,我从abs附带的样本中提取了一些示例代码。主要是我使用了ActionItems.java示例文件。我只使用了一个删除按钮。我将相应的drawable复制到res文件夹(参见Screenshot)。 (我用36x36pixels创建了ldpi版本 - 用alpha通道保存)
问题是删除图标不会出现在Samsung Ace with Android 2.3.3上。 见Screenshot 我的代码出了什么问题? 这是我的代码:
@SuppressLint("NewApi")
public class MainActivity extends SherlockActivity implements Observer {
public static int THEME = R.style.Theme_Sherlock_Light;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fillTableViewWithEvents();
setTheme(R.style.Theme_Sherlock);
setTitle(...);
}
public boolean onCreateOptionsMenu(Menu menu) {
//Used to put dark icons on light action bar
boolean isLight = THEME == R.style.Theme_Sherlock_Light;
MenuItem.SHOW_AS_ACTION_WITH_TEXT);
menu.add("Delete")
.setIcon(isLight ? R.drawable.ic_action_delete : R.drawable.ic_action_delete)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return true;
}
在AndroidManifest.xml中的我添加了这一行(替换旧的@style语句
android:theme="@style/Theme.Sherlock"