本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/除了在ActionBar的左侧显示应用图标和Activity的标题,也可以在ActionBar上面显示额外的项目。这些被添加的项目被叫做“action items”。这些项目就是一些在你应用中一些功能的快捷方式。举个例子,你正在开发一块RSS阅读器,那么action items就可能是“刷新”、“删除”和“添加”。
下面的例子演示如何在ActionBar中添加项目。
1. 使用上一节的项目,在MyActionBarActivity.java中的代码。
- public class MyActionBarActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //ActionBar actionBar = getActionBar();
- //actionBar.hide();
- //actionBar.show(); //---show it again---
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- super.onCreateOptionsMenu(menu);
- CreateMenu(menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item)
- {
- return MenuChoice(item);
- }
- private void CreateMenu(Menu menu)
- {
- MenuItem mnu1 = menu.add(0, 0, 0, "Item 1");
- {
- mnu1.setIcon(R.drawable.ic_launcher);
- mnu1.setShowAsAction(
- MenuItem.SHOW_AS_ACTION_IF_ROOM);
- }
- MenuItem mnu2 = menu.add(0, 1, 1, "Item 2");
- {
- mnu2.setIcon(R.drawable.ic_launcher);
- mnu2.setShowAsAction(
- MenuItem.SHOW_AS_ACTION_IF_ROOM);
- }
- MenuItem mnu3 = menu.add(0, 2, 2, "Item 3");
- {
- mnu3.setIcon(R.drawable.ic_launcher);
- mnu3.setShowAsAction(
- MenuItem.SHOW_AS_ACTION_IF_ROOM);
- }
- MenuItem mnu4 = menu.add(0, 3, 3, "Item 4");
- {
- mnu4.setShowAsAction(
- MenuItem.SHOW_AS_ACTION_IF_ROOM |
- MenuItem.SHOW_AS_ACTION_WITH_TEXT);
- }
- MenuItem mnu5 = menu.add(0, 4, 4, "Item 5");
- {
- mnu5.setShowAsAction(
- MenuItem.SHOW_AS_ACTION_IF_ROOM);
- }
- }
- private boolean MenuChoice(MenuItem item)
- {
- switch (item.getItemId()) {
- case 0:
- Toast.makeText(this, "You clicked on Item 1",
- Toast.LENGTH_LONG).show();
- return true;
- case 1:
- Toast.makeText(this, "You clicked on Item 2",
- Toast.LENGTH_LONG).show();
- return true;
- case 2:
- Toast.makeText(this, "You clicked on Item 3",
- Toast.LENGTH_LONG).show();
- return true;
- case 3:
- Toast.makeText(this, "You clicked on Item 4",
- Toast.LENGTH_LONG).show();
- return true;
- case 4:
- Toast.makeText(this, "You clicked on Item 5",
- Toast.LENGTH_LONG).show();
- return true;
- }
- return false;
- }
- }

如果按菜单按钮,就会看见余下的菜单选项。“悬浮的”菜单。
3. 点击菜单项,就会弹出提示。
4. 按Ctrl+F11,改变模拟器的显示方向。将会看到四个选项:三个按钮和一个文本框。
