zoukankan      html  css  js  c++  java
  • Android中的Menu功能菜单OptionsMenu[选项菜单]

    Android中的菜单是用户界面中最常见的元素,使用也很频繁,在Android中,菜单被分为3种,分别为选项菜单(OptionsMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu)。本文先讲选项菜单(OptionsMenu)的使用。

          Android手机上有个Menu按键,当Menu按下的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单,这个菜单我们就叫做选项菜单(OptionsMenu),一般情况下,选项菜单最多能显示2排3个菜单选项。这些菜单项中可以设定图标,文字。菜单项如果多于6项,从第6项开始出现一个More选项,点击More才出现第六项以及以后的菜单项,这些菜单项也被称作Expanded Menus。

          我们先浏览下效果图(如下):

    view plaincopy to clipboardprint?  
    package com.andy.test;    
        
    import android.app.Activity;    
    import android.os.Bundle;    
    import android.view.Menu;    
    import android.view.MenuItem;    
    import android.widget.Toast;    
        
    public class TestActivity extends Activity {    
            
        //定义Menu菜单选项的ItemId    
        final static int ONE = Menu.FIRST;    
        final static int TWO = Menu.FIRST+1;    
        final static int THREE = Menu.FIRST+2;    
        final static int FOUR = Menu.FIRST+3;    
        final static int FIVE = Menu.FIRST+4;    
        final static int SIX = Menu.FIRST+5;    
        final static int SEVEN = Menu.FIRST+6;    
            
            public void onCreate(Bundle savedInstanceState) {    
                   super.onCreate(savedInstanceState);    
                   setContentView(R.layout.main);     
            }    
        
        //创建Menu菜单    
        public boolean onCreateOptionsMenu(Menu menu) {    
            menu.add(0, ONE, 0, "第一").setIcon(R.drawable.icon);  //设置文字与图标    
            menu.add(0, TWO, 0, "第二");    
            menu.add(0, THREE, 0, "第三");    
            menu.add(0, FOUR, 0, "第四");    
            menu.add(0, FIVE, 0, "第五");    
            menu.add(0, SIX, 0, "第六");    
            menu.add(0, SEVEN, 0, "第七");    
            return super.onCreateOptionsMenu(menu);    
        }    
        
        //点击Menu菜单选项响应事件    
        public boolean onOptionsItemSelected(MenuItem item) {    
            switch(item.getItemId()){    
            case 1:    
                Toast.makeText(this, "你点击了第一", Toast.LENGTH_SHORT).show();    
                break;    
            case 2:    
                Toast.makeText(this, "你点击了第二", Toast.LENGTH_SHORT).show();    
                break;    
            }    
            return super.onOptionsItemSelected(item);    
        }    
        
            //选项菜单被关闭事件,菜单被关闭有三种情形,menu按钮被再次点击、    
        //back按钮被点击或者用户选择了某一个菜单项    
        public void onOptionsMenuClosed(Menu menu) {    
            Toast.makeText(this, "你关闭了选项菜单", Toast.LENGTH_SHORT).show();    
        }    
        
        //菜单被显示之前的事件     
        public boolean onPrepareOptionsMenu(Menu menu) {    
            Toast.makeText(this,     
                    "选项菜单显示之前onPrepareOptionsMenu方法会被调用",Toast.LENGTH_LONG).show();      
                    //如果返回false,此方法就把用户点击menu的动作给消费了,    
            //onCreateOptionsMenu方法将不会被调用      
                      return true;      
        }      
    }    

    我们要在Activity中除了覆盖 onCreate(Bundle savedInstanceState);方法外,也要覆盖onCreateOptionsMenu(Menu menu)和onOptionsItemSelected(MenuItem item)方法。代码如下:

  • 相关阅读:
    [MFC] MFC 用mciSendString加载WAV资源文件
    [JS] HTML QQ分享界面js代码
    [MFC] MFC 打开HTML资源(用ID版,也可加载到自己的web控件上)
    [ACM_暴力][ACM_几何] ZOJ 1426 Counting Rectangles (水平竖直线段组成的矩形个数,暴力)
    [ACM_动态规划] ZOJ 1425 Crossed Matchings(交叉最大匹配 动态规划)
    easyui combobox可编辑的情况下,只能首字母开始过滤的问题选项
    easyui-combobox绑定回车事件注意事项
    easyui-combobox绑定回车事件相关
    jquery-qrcode 生成和读取二维码
    zxing生成二维码和读取二维码
  • 原文地址:https://www.cnblogs.com/622698abc/p/2733322.html
Copyright © 2011-2022 走看看