【Android 开发教程】添加ActionBar物件

本文介绍如何在 Android 应用的 ActionBar 中添加自定义操作项(action items)。通过示例代码展示了如何创建并设置这些操作项的显示方式及响应事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章节翻译自《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中的代码。

[java] view plain copy
  1. public class MyActionBarActivity extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     @Override  
  4.     public void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.main);  
  7.           
  8.         //ActionBar actionBar = getActionBar();  
  9.         //actionBar.hide();  
  10.         //actionBar.show(); //---show it again---  
  11.     }  
  12.       
  13.     @Override  
  14.     public boolean onCreateOptionsMenu(Menu menu) {       
  15.         super.onCreateOptionsMenu(menu);  
  16.         CreateMenu(menu);  
  17.         return true;  
  18.     }  
  19.    
  20.     @Override  
  21.     public boolean onOptionsItemSelected(MenuItem item)  
  22.     {      
  23.          return MenuChoice(item);      
  24.     }      
  25.       
  26.     private void CreateMenu(Menu menu)  
  27.     {  
  28.         MenuItem mnu1 = menu.add(000"Item 1");  
  29.         {           
  30.             mnu1.setIcon(R.drawable.ic_launcher);  
  31.             mnu1.setShowAsAction(  
  32.                 MenuItem.SHOW_AS_ACTION_IF_ROOM);              
  33.         }  
  34.         MenuItem mnu2 = menu.add(011"Item 2");  
  35.         {           
  36.             mnu2.setIcon(R.drawable.ic_launcher);              
  37.             mnu2.setShowAsAction(  
  38.                 MenuItem.SHOW_AS_ACTION_IF_ROOM);  
  39.         }  
  40.         MenuItem mnu3 = menu.add(022"Item 3");  
  41.         {           
  42.             mnu3.setIcon(R.drawable.ic_launcher);  
  43.             mnu3.setShowAsAction(  
  44.                 MenuItem.SHOW_AS_ACTION_IF_ROOM);  
  45.         }  
  46.         MenuItem mnu4 = menu.add(033"Item 4");  
  47.         {              
  48.             mnu4.setShowAsAction(  
  49.                 MenuItem.SHOW_AS_ACTION_IF_ROOM |  
  50.                 MenuItem.SHOW_AS_ACTION_WITH_TEXT);  
  51.         }  
  52.         MenuItem mnu5 = menu.add(044"Item 5");  
  53.         {              
  54.             mnu5.setShowAsAction(  
  55.                 MenuItem.SHOW_AS_ACTION_IF_ROOM);  
  56.         }  
  57.     }  
  58.    
  59.     private boolean MenuChoice(MenuItem item)  
  60.     {          
  61.         switch (item.getItemId()) {  
  62.           
  63.         case 0:  
  64.             Toast.makeText(this"You clicked on Item 1",   
  65.                 Toast.LENGTH_LONG).show();  
  66.             return true;  
  67.         case 1:  
  68.             Toast.makeText(this"You clicked on Item 2",   
  69.                 Toast.LENGTH_LONG).show();  
  70.             return true;  
  71.         case 2:  
  72.             Toast.makeText(this"You clicked on Item 3",   
  73.                 Toast.LENGTH_LONG).show();  
  74.             return true;  
  75.         case 3:  
  76.             Toast.makeText(this"You clicked on Item 4",   
  77.                 Toast.LENGTH_LONG).show();  
  78.             return true;  
  79.         case 4:  
  80.             Toast.makeText(this"You clicked on Item 5",   
  81.                 Toast.LENGTH_LONG).show();  
  82.             return true;          
  83.         }  
  84.         return false;  
  85.     }      
  86.   
  87. }  
2. 按F11调试。观察ActionBar右侧的图标。

如果按菜单按钮,就会看见余下的菜单选项。“悬浮的”菜单。

3. 点击菜单项,就会弹出提示。

4. 按Ctrl+F11,改变模拟器的显示方向。将会看到四个选项:三个按钮和一个文本框。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值