zoukankan      html  css  js  c++  java
  • android之Menu 实例与详解

    此文写的简单明了 非常不错的文章 果断转载造福人民群众... 

    Android用户界面主要由View、Menu、对话框组成。

     
     菜单Menu主要有三种,选择菜单(OptionsMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu)。
     我们这里主要讲选择菜单(OptionsMenu)。
     
     Android手机上有个Menu按键,当按下Menu键的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单。就是选  择菜单。
     
     main.xml 代码部分
     <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Menu的学习"
        android:textSize="22px"
        />
    </LinearLayout>
     
    MenuActivity.java 代码部分
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.Toast;
     
    public class MenuActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            }
        //创建menu,Activity调用onCreateOptionsMenu(Menu menu)方法,传一个实现Menu接口的menu对象,供使用。
        @Override
        public boolean onCreateOptionsMenu(Menu menu){
        
        //menu.add()里面有四个参数依次是:
        //第一个,组别。
        //第二个,ID。是menu识别编号,供识别menu用的。很重要。
        //第三个,顺序。这个参数的大小决定菜单出现的先后顺序。顺序是参数由小到大,菜单从左到右,从上到下排列。一行最多三个。
        //第四个,显示文本。
        
        menu.add(0,Menu.FIRST,0,"添加").setIcon(android.R.drawable.ic_menu_add);
        menu.add(0,Menu.FIRST+1,1,"保存").setIcon(android.R.drawable.ic_menu_save);
        menu.add(0,Menu.FIRST+2,2,"发送").setIcon(android.R.drawable.ic_menu_send);
        
        menu.add(1,Menu.FIRST+3,3,"详细").setIcon(android.R.drawable.ic_menu_info_details);
        menu.add(1,Menu.FIRST+4,4,"删除").setIcon(android.R.drawable.ic_menu_delete);
        menu.add(1,Menu.FIRST+5,5,"帮助").setIcon(android.R.drawable.ic_menu_help);
        //只有返回True才会起作用。
        return true;
        }
        //菜单项选择事件
        @Override
        public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()){
        case Menu.FIRST:
        Toast.makeText(this,"添加菜单被点击了",Toast.LENGTH_SHORT).show();
        break;
        case Menu.FIRST+1:
        Toast.makeText(this,"保存菜单被点击了",Toast.LENGTH_SHORT).show();
        break;
        case Menu.FIRST+2:
        Toast.makeText(this,"发送菜单被点击了",Toast.LENGTH_SHORT).show();
        break;
        case Menu.FIRST+3:
        Toast.makeText(this,"详细菜单被点击了",Toast.LENGTH_SHORT).show();
        break;
        case Menu.FIRST+4:
        Toast.makeText(this,"删除菜单被点击了",Toast.LENGTH_SHORT).show();
        break;
        case Menu.FIRST+5:
        Toast.makeText(this,"帮助菜单被点击了",Toast.LENGTH_SHORT).show();
        break;
        }
        return false;
        }
        //菜单被显示之前的事件
        @Override
        public boolean onPrepareOptionsMenu(Menu menu){
        Toast.makeText(this,"菜单被显示之前的事件,可以在这里调整菜单",Toast.LENGTH_LONG).show();
        return true;
        //必须返回True才能调用onCreateOptionsMenu(Menu menu)方法。
        }
        
        //选择菜单的关闭事件。
        //有三种关闭方式,menu按钮再被点击,back按钮被点击,用户选择另一个菜单项。
        @Override
        public void onOptionsMenuClosed(Menu menu){
        Toast.makeText(this,"菜单被关闭了",Toast.LENGTH_SHORT).show();
        }
    }
     
    运行结果如下:
     
     
     
  • 相关阅读:
    js的event对象 详解
    RestSharp使用详解(1)调用阿里巴巴开放存储服务
    RestSharp使用详解(2)RestSharp的BUG和不足
    WF实例学习笔记:(2)通过Workflow 调用 WCF Data Services 获取数据
    译文:SQL Azure客户端瞬态错误处理最佳实践
    Windbg 基本命令
    RestSharp使用详解(3)OSS文件上传的问题
    Transient Fault Handling and Retry Logic: 瞬间错误处理——重试
    推荐一本免费的Node.js电子书(台湾)
    CSS导航菜单应用滑动门技术的玻璃效果菜单
  • 原文地址:https://www.cnblogs.com/qingblog/p/2507886.html
Copyright © 2011-2022 走看看