menu
来源:互联网 发布:淘宝公司的管理团队 编辑:程序博客网 时间:2024/06/11 09:43
Android系统里面有3种类型的菜单:options menu,context menu,sub menu。
一、 options menu详解 options menu在屏幕底部最多只能显示6个菜单项。 在Activity里面,一般通过以下函数来使用options menu: Activity::onCreateOptionsMenu (Menumenu) 创建options menu,这个函数 只会在menu第一次显示时调用。 Activity::onOptionsItemSelected (MenuItemitem) 处理选中的菜单项。 例: 第一步: @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, ITEM1, 0, "menu1"); menu.add(0, ITEM2, 1, "menu2"); return super.onCreateOptionsMenu(menu); } 通过onCreateOptionsMenu方法,增加了两个按钮,按钮名字分别为menu1和menu2。 主要通过方法Menu.add(intgroupId, int itemId, int order, CharSequence title)。 groupId:分组的id,如果不用分组就用0。 itemId:menu当中每一项的id。这个id是唯一的。 order:排序的信息,根据这个字段的大小,menu对其中的项进行排序显示。order小 的显示在前边,大的显示在后边。 title:menu项的显示信息。 第二步: @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ITEM1: Log.i("onOptionsItemSelected", "menu1"); break; case ITEM2: Log.i("onOptionsItemSelected", "menu2"); break; } return super.onOptionsItemSelected(item); } 这个方法是实现menu响应单击事件,是一个回调方法。即这个方法只有在事件触发后才会被Android系统自动调用执行。而这个事件就是单击菜单里的某一项(MenuItem),看到这个方法传进来的参数是MenuItem,也就是menu当中的某一项。 其中通过item.getItemId()可以获得menu的唯一id。 二、contextmenu详解 要在相应的view上按几秒后才显示的,用于view,跟某个具体的view绑定在一起。 在Activity里面,一般通过以下函数来使用context menu: registerForContextMenu(Viewview) 为某个view注册context menu,一般在Activity::onCreate里面调用。 onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo) 创建context menu,和options menu不同,context meun每次显示时都会调用这 个函数。 public boolean onContextItemSelected(MenuItemitem) 处理选中的菜单项。 例: 第一步: 在onCreate方法中为某个view注册 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); txt = (TextView)findViewById(R.id.txt); registerForContextMenu(txt); } 第二步: 生成menu @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(0, ITEM1, 0, "EDIT"); menu.add(0, ITEM2, 1, "DELETE"); super.onCreateContextMenu(menu, v, menuInfo); } 这个方法同options menu中的onCreateOptionsMenu类似。不予详解。 第三步: 处理选中的菜单项 @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case ITEM1: Log.i("onOptionsItemSelected", "EDIT"); break; case ITEM2: Log.i("onOptionsItemSelected", "DELETE"); break; } return super.onContextItemSelected(item); } 这个方法同options menu中的onCreateOptionsMenu类似。不予详解。 三、 sub menu详解 将onCreateOptionsMenu内代码改成如下代码,即可实现submenu: @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu sub1 = menu.addSubMenu(0, ITEM1, 0, "sub1"); SubMenu sub2 = menu.addSubMenu(0, ITEM2, 1, "sub2"); sub1.add(0, ITEM3, 0, "sub1_1"); sub1.add(0, ITEM4, 1, "sub1_2"); sub2.add(0, ITEM5, 2, "sub2_1"); sub2.add(0, ITEM6, 3, "sub2_2"); return super.onCreateOptionsMenu(menu); } 这里主要通过menu.addSubMenu来增加子菜单,其他的和optionsmenu一样。 addSubMenu和add的方法类似,这里不做详细讲解。
- Menu
- Menu
- menu
- menu
- menu
- Menu
- MENU
- menu
- menu
- Menu
- Menu
- menu
- menu
- Menu
- Menu
- Menu
- MENU
- Menu
- 在it混了三年了,最近想开始写自己的技术博客
- 测试人员容易遗漏一些隐藏的缺陷[转]
- 放弃理想,未必能成就现实
- JAVA资格认证:JSP中Action属性的功能浅析
- 用Doctype激活浏览器模式(Activating Browser Modes with Doctype) (一)
- menu
- 腾讯有多大:10条让你尖叫的数据
- Android第十二站 众多豪华控件 列表应用
- extjs CheckTree 的相关应用
- Android第十二站 众多豪华控件 列表应用
- 软件开发之恶性的膨胀
- PHP的运行原理 : 内幕:PHP是如何显示“你好世界”的?
- ACM进阶之路
- jQuery Ajax 传输中文乱码解决方案