1 package xiacl.ui;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 
 6 import android.view.Menu;
 7 import android.view.MenuItem;
 8 import android.view.SubMenu;
 9 import android.widget.Toast;
10 
11 public class MenuTest extends Activity {
12     /** Called when the activity is first created. */
13     @Override
14     public void onCreate(Bundle savedInstanceState) {
15         super.onCreate(savedInstanceState);
16         setContentView(R.layout.main);
17         
18     } 
19     /* 创建Menu需要覆盖onCreateOptionsMenu(Menu menu)和onOptionsItemSelected(MenuItem item)方法
20      * menu.add()里面有四个参数依次是:
21      *         第一个,组别。
22      *         第二个,ID。是menu识别编号,供识别menu用的。很重要。
23      *         第三个,顺序。这个参数的大小决定菜单出现的先后顺序。
24      *             顺序是参数由小到大,菜单从左到右,从上到下排列。一行最多三个。
25      *         第四个,显示文本。
26      * Menu可以包含多个SubMenu,SubMenu可以包含多个MenuItem
27      * 但是SubMenu不能包含SubMenu,及子菜单不能嵌套!!!
28      *         例如subMenu.addSubMenu("又一个子菜单");能通过编译,但会在运行时出错。*/
29     @Override
30     public boolean onCreateOptionsMenu(Menu menu){
31         MenuItem menuitem1=menu.add(0,1,1,"关于");
32         menu.add(0,2,2,"退出");
33         SubMenu submenu=menu.addSubMenu(0, 3, 3, "子菜单");
34         MenuItem menuitem2=submenu.add(1,4,4,"子菜单项1");
35         submenu.add(1,5,5,"子菜单项2");
36         //菜单项是支持显示图标的
37         menuitem1.setIcon(R.drawable.ic_launcher);
38         //但子菜单项不支持显示图标,这样做是没意义的,尽管不会报错!
39         menuitem2.setIcon(R.drawable.ic_launcher);
40         return super.onCreateOptionsMenu(menu);      
41     }
42     @Override
43     public boolean onOptionsItemSelected(MenuItem item){
44         switch(item.getItemId()){
45         case 1:
46             Toast toast=Toast.makeText(this, "我是关于",Toast.LENGTH_LONG);
47             toast.show();
48             break;
49         case 2:
50             finish();
51             break;
52         case 3:
53             Toast.makeText(this, "我是子菜单",Toast.LENGTH_LONG).show();
54             break;
55         case 4:
56             Toast.makeText(this, "我是子菜单项1",Toast.LENGTH_LONG).show();
57             break;
58         case 5:
59             Toast.makeText(this, "我是子菜单项2",Toast.LENGTH_LONG).show();
60             break;       
61         }
62         return super.onOptionsItemSelected(item);    
63     }
64 }

 

 posted on 2012-06-14 17:42  xiacl  阅读(264)  评论(0)    收藏  举报