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;
    }

结果如下

时间: 2024-11-05 19:30:00

menu-代码添加以及add方法参数意义的相关文章

TP add方法参数详解

tp add()方法参数详解: add($data='',$options=array(),$replace=false); 其中R$replace表示,是否添加数据时覆盖原有数据true表示覆盖,false表示不覆盖

thinkphp添加数据 add()方法

thinkphpz内置的add()方法用于向数据库表添加数据,相当于SQL中的INSERT INTO 行为添加数据 add 方法是 CURD(Create,Update,Read,Delete / 创建,修改,读取,删除)中的 Create 的实现,ThinkPHP 支持以普通数组方式和面向对象方式将数据写入数据表.//insert,以普通数组方式将数据写入数据表 $insert['user_id']=$my['user_id']; $insert['content_body']=$conten

C#编程:SqlCommand.Parameters.Add()方法的参数问题。

在存储过程中添加2个参数 sql语句 例: “update [tablename] username = @username where [email protected]” 然后把需要的 command.Parameters.Add(new SqlParameter("@id",SqlDbType.VarChar,50)); cmd.Parameters.Add("@username",textUsername.Text); 标准的system.data.sqlc

JavaScript之jQuery-9 jQuery 开发插件(添加新全局函数、添加jQuery对象方法、添加新简写方法、方法参数)

一.添加新的全局函数 全局函数 - 全局函数,实际上就是jQuery对象的方法,从实践角度看,它们是位于jQuery命名空间内部的函数 - jQuery内置的某些功能是通过全局函数实现的 - $.ajax()函数就是典型的全局函数 - 向jQuery命名空间添加一个函数,只需要将这个新函数指定为jQuery的一个属性值   - 如果要使用该全局函数时,可通过一下代码调用 - 也可以通过别名来调用 添加多个函数 - 如果我们想在插件中提供多个全局函数,可以独立的声明这些函数   - 还可以使用$.

Button 文字阴影,自定义图片,代码绘制样式,添加音效的方法

1.Button自己在xml文件中绑定监听器 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&qu

代码添加一个按钮及监听方法

有时候无法从控件中拖拽一个按钮到storyboard,必须用编写代码方式添加按钮: 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // Do any additional setup after loading the view, typically from a nib. 5 //计算出展示表情区域的宽和 展示区距顶部的高度+10个偏移量 6 //添加按钮 9 //创建button 10 addBtn = [[UIButton alloc

【乱写代码坑人系列】小插曲(一)将类的所有属性添加为SqlCommand的参数

小插曲(一)将类的所有属性添加为SqlCommand的参数 在使用SqlCommand 执行存储过程时,如果存储过程需要参数,就必须将每个参数都输进去,虽然说可以使用AddWithValue 方法,但参数多时仍旧有些麻烦. 在需要将类的所有属性作为参数时,可以通过反射获取这个类所有的属性和值,并直接添加到参数中. 不过需要注意的是,必须保证类的属性名和参数名相同(不区分大小写),顺序无所谓. 1 private void SetSqlParameters<T>(SqlCommand cmd,

在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中

BorderLayout是Window.Frame和Dialog的默认布局管理器,其将容器分成North.South.East.West和Center 5个区域,每个区域只能放置一个组件. 在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中. 使用BorderLayout时,如果容器大小发生变换,组件的相对位置不变. 1 package TomAwt; 2 3 4 import java.applet.Applet; 5 import java.awt.*; 6 public c

Asp.net 后台添加Meta标签方法

Asp.net 后台添加Meta标签方法包括keywords,CSS.JS 下面是从Asp.net 后台添加CSS.JS.Meta标签的写法,我们这里写成函数方便以后使用.如果函数放在页面类中, Page参数也可以不要. 首先导入命名空间 using System.Web.UI.HtmlControls; 代码如下: /// /// 添加JS脚本链接 /// /// 页面 /// 路径 public void AddJS(System.Web.UI.Page page, string url)