菜单对象
复写Activity的方法
1 /** 2 * 函数名称 : onCreateOptionsMenu 3 * 功能描述 : 创建选项菜单 4 * 参数说明: 5 * @param menu 6 * @return 7 * 返回值: 8 * 9 * 修改记录: 10 * 日期:2011-11-25 上午11:27:33 修改人:gy 11 * 描述 : 12 * 13 */ 14 @Override 15 public boolean onCreateOptionsMenu(Menu menu) 16 { 17 //获取菜单Inflater 18 MenuInflater inflater = this.getMenuInflater(); 19 //设置 Menu 界面为 res/menu/menudemo1.xml 20 inflater.inflate(R.menu.menudemo1, menu); 21 return true; 22 } 23 24 /** 25 * 函数名称 : onOptionsItemSelected 26 * 功能描述 : 处理菜单选项选中 27 * 参数说明: 28 * @param item 29 * @return 30 * 返回值: 31 * 32 * 修改记录: 33 * 日期:2011-11-25 上午11:37:26 修改人:gy 34 * 描述 : 35 * 36 */ 37 @Override 38 public boolean onOptionsItemSelected(MenuItem item) 39 { 40 StringBuffer sbMsg = new StringBuffer(); 41 sbMsg 42 .append("你选择了:“") 43 .append(item.getTitle()) 44 .append("” 菜单项!"); 45 Tools.getInstance().toastShowMsg(MenuDemo1.this, sbMsg.toString(), Toast.LENGTH_SHORT); 46 return true; 47 }
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/itAbout" android:title="@string/itAbout"/> <item android:id="@+id/itExit" android:title="@string/itExit"/> </menu>
第二种方法加载菜单View
1 /** 2 * 函数名称 : onCreateOptionsMenu 3 * 功能描述 : 创建选项菜单 4 * 参数说明: 5 * @param menu 6 * @return 7 * 返回值: 8 * 9 * 修改记录: 10 * 日期:2011-11-25 上午11:27:33 修改人:gy 11 * 描述 : 12 * 13 */ 14 @Override 15 public boolean onCreateOptionsMenu(Menu menu) 16 { 17 /** 18 * 调用 menu.add 的方法就可以增加一个新的菜单项 19 * 第一个参数:是表示菜单项所处的菜单组的ID 20 * 第二个参数:当前菜单项的ID 21 * 第三个参数:同一菜单组中菜单项的排序编号 22 * 第四个参数:菜单项上面显示的文本内容 23 */ 24 menu.add(0, 0, 0, R.string.itAbout); 25 menu.add(0, 1, 1, R.string.itExit); 26 return true; 27 } 28 29 /** 30 * 函数名称 : onOptionsItemSelected 31 * 功能描述 : 处理菜单选项选中 32 * 参数说明: 33 * @param item 34 * @return 35 * 返回值: 36 * 37 * 修改记录: 38 * 日期:2011-11-25 上午11:37:26 修改人:gy 39 * 描述 : 40 * 41 */ 42 @Override 43 public boolean onOptionsItemSelected(MenuItem item) 44 { 45 StringBuffer sbMsg = new StringBuffer(); 46 sbMsg 47 .append("你选择了:“") 48 .append(item.getTitle()) 49 .append("” 菜单项!"); 50 Tools.getInstance().toastShowMsg(MenuDemo2.this, sbMsg.toString(), Toast.LENGTH_SHORT); 51 return true; 52 }
上下文菜单
1 /** 2 * 函数名称 : onCreateContextMenu 3 * 功能描述 : 重写 onCreateContextMenu 用以创建上下文菜单 4 * 参数说明: 5 * @param menu 6 * @param v 7 * @param menuInfo 8 * 返回值: 9 * 10 * 修改记录: 11 * 日期:2011-12-8 上午10:59:41 修改人:gy 12 * 描述 : 13 * 14 */ 15 @Override 16 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 17 { 18 super.onCreateContextMenu(menu, v, menuInfo); 19 //创建 R.id.tv1 的上下文菜单 20 if(v == (TextView) this.findViewById(R.id.tv1)) 21 { 22 //设置菜单标题的图标 23 menu.setHeaderIcon(R.drawable.icon); 24 //设置菜单标题的文字 25 menu.setHeaderTitle("Eclipse菜单"); 26 //menu.clearHeader(); 27 //第一个参数:组 ID 28 //第二个参数:菜单项 ID 29 //第三个参数:顺序号 30 //第四个参数:菜单项上显示的内容 31 menu.add(1, 0, 0,"文件"); 32 //增加一个 √ 选项 33 menu.add(1, 1, 1,"编辑").setCheckable(true); 34 } 35 //创建 R.id.tv2 的上下文菜单(多级) 36 else if(v == (TextView) this.findViewById(R.id.tv2)) 37 { 38 //ContextMenu.addSubMenu("菜单名称") - 用来添加子菜单。子菜单其实就是一个特殊的菜单 39 SubMenu sub1 = menu.addSubMenu("搜索"); 40 sub1.setHeaderIcon(R.drawable.icon); 41 sub1.add(0, 0, 0, "搜索Java文件"); 42 sub1.add(0, 1, 1, "搜索Xml文件"); 43 //参数1:表示组ID 44 //参数2:设置为 true 时表示显示复选标记,设置为 false 时表示不显示复选标记 45 //参数3:设置为 true 时表示显示单选标记,设置为 false 时表示不显示单选标记 46 //如果参数2 和 参数3都设置为 true,则显示单选标记 47 sub1.setGroupCheckable(0, true, true); 48 49 SubMenu sub2 = menu.addSubMenu("帮助"); 50 sub2.setIcon(R.drawable.usb_android); 51 sub2.add(1, 0, 0, "游戏帮助"); 52 sub2.add(1, 1, 1, "关于"); 53 // sub2.setGroupCheckable(1, true, true); 54 } 55 } 56 57 /** 58 * 函数名称 : onContextItemSelected 59 * 功能描述 : 当菜单被选中时调用 60 * 参数说明: 61 * @param item 62 * @return 63 * 返回值: 64 * 65 * 修改记录: 66 * 日期:2011-12-8 上午11:18:49 修改人:gy 67 * 描述 : 68 * 69 */ 70 @Override 71 public boolean onContextItemSelected(MenuItem item) 72 { 73 Tools.getInstance().toastShowMsg(ContextMenu_Demo1.this, "你选中了:“" + item.getTitle().toString() + "”菜单", Toast.LENGTH_SHORT); 74 return super.onContextItemSelected(item); 75 }