如果您想在 ActionBar 上放置一个图标而不是按钮,我建议您检查并下载 ActionBarSherlock 库以避免兼容性问题并简化您的工作。例如,如果您已经下载并安装了 SherlockActionBar,您应该按照以下步骤操作:
从 SherlockActivity 而不是 Activity 扩展您的活动:
public class DrawingActivity extends SherlockActivity {...your code}
用 res/drawable 目录(drawable-hdpi、drawable-ldpi、...)上的图标替换“ic_action_trash”
- 在 res/menu 文件夹上创建一个 xml 文件,名为 menu_main.xml(例如)
在 DrawingActivity 类中覆盖 OnCreate 方法下方的 onCreateOptionsMenu 和 onOptionsItemSelected 方法,如下所示:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_main, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.delete_events)
deleteEvent();
return true;
}
And here is the result:
However, to check your requirements, I think you should change the methods above like this:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
//inflater.inflate(R.menu.menu_main, menu);
SubMenu submenu = menu.addSubMenu("");
submenu.setIcon( R.drawable.abs__ic_menu_moreoverflow_normal_holo_dark);
submenu.add(1, 1, 1, R.string.add);
submenu.add(1, 2, 2, R.string.delete);
submenu.add(1, 3, 3, R.string.about);
submenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
addEvent();
break;
case 2:
deleteEvent();
break;
case 3:
about();
break;
default:
return true;
}
return true;
}
当您单击顶部图标时,您会看到:
希望这对你有用!