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
浙公网安备 33010602011771号