• menu-代码添加以及add方法参数意义


    今天需要给一个menu动态添加一个item,先把方法记录如下

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
    
            menu.add(Menu.NONE, MENU_REVET, 0, R.string.revert)
                    .setEnabled(true)
                    .setIcon(R.drawable.ic_settings_schpwroff)
                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
            menu.add(Menu.NONE, MENU_SAVE, 0, R.string.done)
                    .setEnabled(true)
                    .setIcon(R.drawable.ic_settings_schpwroff)
                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
            return super.onCreateOptionsMenu(menu);
        } 

    上面几个方法我们简单介绍下

    setEnable:这个是设置menuItem可点击状态,设置为false,会显示灰色

    setIcon:设置图标

    setShowAsAction:设置menu显示位置

    现在我们重点介绍下最后一个方法-add

    这个方法里面有四个参数,它们的意义分别为

           第一个int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。它对应方法

    int i = item.getGroupId();


           第二个int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个item ID对应一个menu中的选项。在后面使用菜单的时候,就靠这个item ID来判断你使用的是哪个选项。它对应

    int id = item.getItemId();


           第三个int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。如果两个位置数值一样,那么先定义的拍前面。而且,groupid并不影响排列顺序。
           第四个String类型的title参数,表示选项中显示的文字。

    我们看下一个例子

        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            menu.add("hah").setIcon(R.drawable.abc_ab_bottom_solid_dark_holo).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
            menu.add("heihei").setEnabled(true).setIcon(R.drawable.abc_ab_bottom_solid_dark_holo).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
            menu.add(1, 11, 0, "1-1").setEnabled(false);
            menu.add(1, 12, 0, "1-2");
            menu.add(1, 13, 2, "1-3");
            menu.add(2, 11, 3, "2-1");
            menu.add(2, 12, 4, "2-2");
            return true;
        }

    结果如下

  • 相关阅读:
    几大NB IT公司的Orgnizational Chart
    [Buzz.Today]2012.01.19
    ASP.NET常用的三十三种实用代码
    asp.net UrlRewrite 技术的实现
    AJAX 中,让 UpdateProgress 中的内容显示在页面正中央
    AJAX中关于多个UpdatePanel 的 UpdateProgress 的使用方法
    谈谈 Cookie 存取和IE页面缓存的问题
    一个非常实用的 div+css 实现的导航条
    常用 css 示例
    AJAX 带有 取消功能的 UpdateProgress
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_menu_15624145.html
Copyright © 2020-2023  润新知