Menu菜单
创建菜单项MenuItem
创建菜单xml文件,必须以<menu>为根标签
菜单xml的位置: /res/menu/
<item>标签属性
android:id表示item的id
android:icon表示菜单的图标,4.0系统仅在ActionBar上显示图标
android:title表示菜单的文字
二级组菜单
二级可选组菜单
通过MenuInflater.inflater(int menuId,menu)方法将菜单项追加到菜单中
menu.add()方法增加菜单
1, menu.add()方法返回MenuItem对象
setIcon (int iconRes)
setTitle (CharSequence title)
setOnMenuItemClickListener(OnMenuItemClickListener)
public abstract boolean onMenuItemClick (MenuItem item)
setIntent(Intent)设置点击菜单项时打开的窗口
2, menu.add(CharSequence) :一般使用方法,增加菜单名称
3, menu.add(0, 1, 1, "拍照")
第一个参数为GroupID,Group即将菜单项分组
第二个参数为ItemID,指的是菜单项的id
第三个参数为order,指定菜单项的位置顺序
第四个参数为title,指的是菜单项所显示的文字
重写public void onCreateContextMenu(ContextMenu, View,ContextMenuInfo)方法
菜单项同OptionsMenu
创建菜单xml文件,必须以<menu>为根标签
menu.setHeaderTitle(String) 设置窗口头的标题
menu.setHeaderIcon(R.drawable.face) 设置窗口头的图标
menu.add(groupId, itemId, Menu.NONE, "菜单项1") 增加菜单项
menu.setGroupCheckable(groupId, checkable, exclusive);
重写public boolean onContextItemSelected(MenuItem item)方法,实现菜单项的选择事件
PopupMenu(Context context, View anchor): 第二个参数是指弹出菜单显示的哪一个控件的下方或上方
MenuInflater.inflate(int menuResId,PopupMenu.getMenu()) 加载菜单资源到弹出菜单对象中
setOnMenuItemClickListener() 设置弹出菜单项的点击事件
show() 弹出菜单
dismiss() 关闭菜单
解决Android4.0+菜单项不显示图标的问题
概念
1、Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单。这种菜单叫做选项菜单(Option Menu)。
2、从3.0开始,Android不要求手机设备上必须提供MENU按键。因此Android推荐使用ActionBar来代替Menu。
分类:
ContextMenu 长按绑定UI控件的上下文菜单
PopupMenu 在指定UI控件的下方或上方显示的弹出菜单
OptionsMenu
创建菜单项MenuItem
创建菜单xml文件,必须以<menu>为根标签
菜单xml的位置: /res/menu/
<item>标签属性
android:id表示item的id
android:icon表示菜单的图标,4.0系统仅在ActionBar上显示图标
android:title表示菜单的文字
showAsAction表示是否将item显示在ActionBar上,仅4.0系统可以显示
二级子菜单二级组菜单
二级可选组菜单
通过MenuInflater.inflater(int menuId,menu)方法将菜单项追加到菜单中
menu.add()方法增加菜单
1, menu.add()方法返回MenuItem对象
setIcon (int iconRes)
setTitle (CharSequence title)
setOnMenuItemClickListener(OnMenuItemClickListener)
public abstract boolean onMenuItemClick (MenuItem item)
setIntent(Intent)设置点击菜单项时打开的窗口
2, menu.add(CharSequence) :一般使用方法,增加菜单名称
3, menu.add(0, 1, 1, "拍照")
第一个参数为GroupID,Group即将菜单项分组
第二个参数为ItemID,指的是菜单项的id
第三个参数为order,指定菜单项的位置顺序
第四个参数为title,指的是菜单项所显示的文字
重写public boolean onOptionsItemSelected(MenuItem item)方法,实现菜单项的选择事件
重写public void onCreateContextMenu(ContextMenu, View,ContextMenuInfo)方法
菜单项同OptionsMenu
创建菜单xml文件,必须以<menu>为根标签
menu.setHeaderTitle(String) 设置窗口头的标题
menu.setHeaderIcon(R.drawable.face) 设置窗口头的图标
menu.add(groupId, itemId, Menu.NONE, "菜单项1") 增加菜单项
menu.setGroupCheckable(groupId, checkable, exclusive);
重写public boolean onContextItemSelected(MenuItem item)方法,实现菜单项的选择事件
Activity.registerForContextMenu(需要显示ContextMenu的控件)
PopupMenu(Context context, View anchor): 第二个参数是指弹出菜单显示的哪一个控件的下方或上方
MenuInflater.inflate(int menuResId,PopupMenu.getMenu()) 加载菜单资源到弹出菜单对象中
setOnMenuItemClickListener() 设置弹出菜单项的点击事件
show() 弹出菜单
dismiss() 关闭菜单
解决Android4.0+菜单项不显示图标的问题