Android用户界面-菜单总结

    1.1>选项菜单:当用户单击Android虚拟机上的Menu按钮时弹出的菜单就是选项菜单。选项菜单最多只能有六个,若多于六个则虚拟机会自动把第六个图标换成“更多”,单击“更多”显示其他选项。

          创建选项菜单步骤:

           (1).覆盖Activity的onCreateOptionsMenu(Menu menu)方法,当我们第一次打开menu菜单时该方法被自动调用。

           (2).调用Menu的add()方法添加菜单项(MenuItem),可以调用MenuItem的setIcon()方法来为菜单项设置图标。

           (3).当菜单项(Menuitem)被选择时,覆盖Activity的onOptionsItemSelected()方法来相应事件。

                      如下代码块:

                                    public boolean onCreateOptionsMenu(Menu menu) {

                                              menu.add(0,ITEM1,1,R.string.menu_start);
                                              menu.add(0,ITEM2,2,R.string.menu_back);
                                              return true;
                                    }
                                    public boolean onOptionsItemSelected(MenuItem item){
                                             switch(item.getItemId()){
                                                  case ITEM1:
                                                         setTitle("开始游戏!");
                                                         break;
                                                 case ITEM2:
                                                         setTitle("退出!");
                                                          break;
                                             }
                                             return true;     
                                    }

 

 

    1.2>上下文菜单:当用户长时间按键不放时,弹出的菜单为上下文菜单。

          (1).覆盖Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项(MenuItem)。

          (2).覆盖Activity的onContextItemSelected()方法,相应菜单单击事件。

          (3).调用registerForContextMenu()方法,为视图注册上下文菜单。

                      如下代码块:

                                    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
                                                menu.add(0,ITEM1,0,"红色背景");
                                                menu.add(0,ITEM2,0,"黄色背景");
                                                menu.add(0,ITEM3,0,"蓝色背景");
                                    }
                                     public boolean onContextItemSelected(MenuItem item) {
                                                switch(item.getItemId()){
                                                  case ITEM1:
                                                      tv1.setBackgroundColor(Color.RED);
                                                      break;
                                                      case ITEM2:
                                                      tv1.setBackgroundColor(Color.YELLOW);
                                                      break;
                                                      case ITEM3:
                                                       tv1.setBackgroundColor(Color.BLUE);
                                                      break;
                                               }
                                               return true;
                                     }

 

    1.3>子菜单:将相同功能分组进行多级显示的一种菜单。

          (1).覆盖Activity的OnCreateOptionMenu()方法,调用Menu的addSubMenu()方法添加子菜单(Sub Menu)。

          (2).调用SubMenu的add()方法,添加子菜单(Sub Menu)。

          (3).覆盖onContextItemSelected()方法,响应菜单单击事件。

                      如下代码块:

                                   public boolean onCreateOptionsMenu(Menu,menu){

                                                SubMenu file=menu.addSubMenu("文件");

                                                SubMenu edit=menu.addSubMenu("新建");
                                                file.add(0,ITEM1,0,"新建");

                                                file.add(0,ITEM2,0,"打开");

                                                return true;

                                    }
                                     public boolean onOptionsItemSelected(MenuItem item){
                                               switch(item.getItemId()){
                                                  case ITEM1:
                                                         setTitle("新建文件!");
                                                         break;
                                                 case ITEM2:
                                                         setTitle("打开文件!");
                                                          break;
                                             }
                                             return true;  

                                     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值