android开发分享Android三种菜单实例分析

本文实例讲述了android的三种菜单。分享给大家供大家参考。具体分析如下: android的菜单分为三种类型:选项菜单(option menu)、上下文菜单(conte

android开发分享Android三种菜单实例分析实例讲述了android的三种菜单。分享给大家供大家参考。具体分析如下:

上述就是android开发分享Android三种菜单实例分析的全部内容,如果对大家有所用处且需要了解更多关于Android学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

android的菜单分为三种类型:选项菜单(option menu)、上下文菜单(context menu)、子菜单(sub menu)

一.选项菜单

当用户单击设备上的菜单按钮(menu),触发事件弹出的菜单就是选项菜单。选项菜单最多只有六个,超过六个第六个就会自动显示 更多 选项来展示显示。
创建方法:

1、覆盖activity的oncreateoptionsmenu(menu menu)方法,当我们第一次打开菜单时调用。
2、调用menu的add()方法添加菜单项(menuitem),可以调用menuitem的seticon()方法为菜单项设置图标。
3、当菜单项(menuitem)被选中时,覆盖acitivy的onoptionsmenuselected()方法响应事件。

二、上下文菜单

当用户长按activity页面时,弹出的菜单我们称为上下文菜单。我们经常在windows中用鼠标右键单击弹出的菜单就是上下文菜单。

1、覆盖activity的oncreatecontextmenu()方法,调用menu的add方法添加菜单项menuitem
2、覆盖oncontextitemselected()方法,响应菜单单击事件
3、调用registerforcontextmenu()方法,为视图注册上下文菜单

三、子菜单

子菜单就是将相同功能的分组进行多级显示的一种菜单,比如,windows的“文件”菜单中就有“新建”,“打开”,“关闭”等子菜单。

创建子菜单的方法

1、覆盖activity的oncreateoptionsmenu()方法,调用menu的addsubmenu()方法添加子菜单项
2、调用submenu的add()饭饭,添加子菜单项
3、覆盖oncreateitemselected()方法,响应菜单单击事件

  public class main extends activity {   // 菜单项id   // first为menu类中的整形常量   private static final int item1 = menu.first;   private static final int item2 = menu.first + 1;   private static final int item3 = menu.first + 2;   private static final int item4 = menu.first + 3;   private static final int item5 = menu.first + 4;   private static final int item6 = menu.first + 5;   private static final int item7 = menu.first + 6;   textview mytv;     @override     public void oncreate(bundle savedinstancestate) {       super.oncreate(savedinstancestate);       setcontentview(r.layout.main);       mytv = (textview) findviewbyid(r.id.mytv);       // 此时为mytv设置上下文菜单,长按textview时响应函数       registerforcontextmenu(mytv);     }   @override   // 点击菜单按钮响应的事件   public boolean oncreateoptionsmenu(menu menu) {    /* 一下代码为选项菜单测试     // 添加菜单项   // public abstract menuitemadd(int groupid, int itemid, int order, charsequence title)   // 菜单所在的group,菜单的id,排列顺序,显示的文字   // add()方法返回一个menuitem对象。而seticon是menuitem的方法   menu.add(0, item1, 0, "开始").seticon(r.drawable.ic_launcher);   menu.add(0, item2, 0, "开始1");   menu.add(1, item3, 0, "开始2");   menu.add(1, item4, 0, "开始3");   menu.add(1, item5, 0, "开始4");  // menu.add(0, item6, 0, "开始5");  // menu.add(0, item7, 0, "开始6");   */    /**    * 以下代码为添加子菜单的测试代码    */    // 添加子菜单    submenu subfile = menu.addsubmenu("文件");    submenu editfile = menu.addsubmenu("编辑");    // 为子菜单添加菜单项    subfile.add(0, item1, 0, "新建");    subfile.add(0, item2, 0, "打开");    return true;   }   @override   // 菜单被选中时触发的事件   public boolean onoptionsitemselected(menuitem item) {    /*   // 在此说明一下,menu相当于一个容器,而menuitem相当于容器中容纳的东西   switch(item.getitemid()) {   case item1:    // 设置activity的title    settitle("开始游戏1");    break;   case item2:    settitle("开始游戏2");    break;   case item3:    settitle("开始游戏3");    break;   case item4:    settitle("开始游戏4");    break;   case item5:    settitle("开始游戏5");    break;   case item6:    settitle("开始游戏6");    break;   case item7:    settitle("开始游戏7");    break;   }   */    /**    * 子菜单项响应代码    */    switch(item.getitemid()) {    case item1:     // 设置activity的title     settitle("新建文件");     break;    case item2:     settitle("打开文件");     break;    }    return true;   }   @override   // 创建上下文菜单   public void oncreatecontextmenu(contextmenu menu, view v,     contextmenuinfo menuinfo) {    // 向上下文菜单中添加菜单项    // 注意此处的menu是contextmenu    menu.add(0, item1, 0, "红色背景");    menu.add(0, item2, 0, "绿色背景");    menu.add(1, item3, 0, "白色背景");   }   @override   public boolean oncontextitemselected(menuitem item) {    switch(item.getitemid()) {    case item1:     mytv.setbackgroundcolor(color.red);     break;    case item2:     mytv.setbackgroundcolor(color.green);     break;    case item3:     mytv.setbackgroundcolor(color.white);     break;    }    return true;   }  }

希望android开发分享Android三种菜单实例分析所述对大家的android程序设计有所帮助。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/941119.html

(0)
上一篇 2021年11月14日
下一篇 2021年11月14日

精彩推荐