Menu 菜单

Menu菜单

    概念

       1、Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单。这种菜单叫做选项菜单(Option Menu)。
        2、从3.0开始,Android不要求手机设备上必须提供MENU按键。因此Android推荐使用ActionBar来代替Menu。

    分类:

        OptionsMenu 按手机menu弹出的菜单

        ContextMenu 长按绑定UI控件的上下文菜单

        PopupMenu  在指定UI控件的下方或上方显示的弹出菜单


    OptionsMenu


        重写public boolean onCreateOptionsMenu(menu)方法
        创建菜单项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)方法,实现菜单项的选择事件


    ContextMenu
        重写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
        PopupMenu(Context context, View anchor): 第二个参数是指弹出菜单显示的哪一个控件的下方或上方
        MenuInflater.inflate(int menuResId,PopupMenu.getMenu()) 加载菜单资源到弹出菜单对象中
        setOnMenuItemClickListener() 设置弹出菜单项的点击事件
        show() 弹出菜单
        dismiss() 关闭菜单
    解决Android4.0+菜单项不显示图标的问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值