android2.2资源文件详解4--menu文件夹下的菜单定义
四.menu下定义菜单
格式:<?xml version="1.0" encoding="utf-8"?>
属性:menu:根属性,包含item和group
? ? ? ?item:必须是menu或者group的子元素,可以包含menu(子菜单)
? ? ? ?group:必须是menu的子元素,包含item
属性详解:
menu:xmlns:android="http://schemas.android.com/apk/res/android"
item:
?
@Overridepublic boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.delete_meeting: postionOfMeetingToDelete = info.position; showDialog(CONFIRM_DELETE_MEETING_DIALOG); return true; default: return super.onContextItemSelected(item); }}??
注册菜单:registerForContextMenu和解除注册?unregisterForContextMenu
?
关闭时所回调的事件:onContextMenuClosed
?
注意:ContextMenu 与 OptionsMenu 的菜单资源XML文件格式完全相同,不能显示icon,但是ContextMenu可以具有自己的标题栏;
???通过setHeaderIcon、setHeaderTitle、setHeaderView、clearHeader方法控制标题栏的显示。
???ContextMenu 继承自 Menu ,标题栏相关的方式是扩展的方法。
多个 View 可以同时注册同一个 ContextMenu?
?
有些 View 会自带系统的 ContextMenu,比如 EditText 会自带“输入法”“复制”“粘贴”等菜单项,
再对这些 View 注册 ContextMenu 时,会将系统菜单项和自己注册的菜单项融合到一起
?
?
3.sub menu(子菜单):在定义选项菜单和上下文菜单时可以加入子菜单,当子菜单被选中时 仍然调用和父类菜单选中时一样的方法.
可以动态的通过addsubmenu和add方法添加子菜单和子菜单项
子菜单有相应的标题栏和相应的方法
?
其余的特性:
菜单组:可以通过menu.setGroupCheckable();
menu.setGroupEnabled();
menu.setGroupVisible()
进行同意设置
?
可以通过group的android:checkableBehavior属性设置组菜单项的选择模式
?
singleOnly one item from the group can be checked (radio buttons)allAll items can be checked (checkboxes)noneNo items are checkable?
?
但是选择后我们要手动的改变状态,使用方法:setChecked()
?
?
?
?
?
?