Android详细教程(基础篇):二十一、View组件高级篇:Menu 菜单组件详解

7.16.Menu(菜单组件)

在一个菜单之中最多只会显示2排3列的菜单项,如果现在的菜单项超出了6,则超出部分会自动的隐藏,而且会自动出现一个“更多”的菜单项提示用户。

在Android中,菜单一共分为三类:选项菜单(OptionMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)

7.16.1 选项菜单(OptionsMenu)

范例一:通过程序生成选项菜单

 

配置:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

     xmlns:android="http://schemas.android.com/apk/res/android"

     android:id="@+id/MyLayout"

     android:orientation="vertical"

     android:layout_width="fill_parent"

     android:layout_height="fill_parent">

     <TextView

          android:id="@+id/txt"

          android:layout_width="wrap_content"

          android:layout_height="wrap_content"

          android:text="按下Menu键出现选项菜单"/>

</LinearLayout>

 

Activity:

package com.makyan.demo;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.Toast;

public class OperationsMenuActivity extends Activity {

     @Override

     public void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);

          super.setContentView(R.layout.activity_operations_menu);

     }

     @Override

     public boolean onCreateOptionsMenu(Menu menu) {              // 显示菜单

          menu.add(Menu.NONE,                                         // 菜单不分组

                    Menu.FIRST + 1,                                        // 菜单项ID

                    1,                                                          // 菜单编号

                    "删除")                                                     // 显示标题

                    .setIcon(android.R.drawable.ic_menu_delete);  // 设置图标

          menu.add(Menu.NONE, Menu.FIRST + 2, 2, "保存").setIcon(

                    android.R.drawable.ic_menu_save);                 // 设置菜单项

          menu.add(Menu.NONE, Menu.FIRST + 3, 3, "帮助").setIcon(

                    android.R.drawable.ic_menu_help);                 // 设置菜单项

          menu.add(Menu.NONE, Menu.FIRST + 4, 4, "添加").setIcon(

                    android.R.drawable.ic_menu_add);                  // 设置菜单项

          menu.add(Menu.NONE, Menu.FIRST + 5, 5, "详细").setIcon(

                    android.R.drawable.ic_menu_info_details);         // 设置菜单项

          menu.add(Menu.NONE, Menu.FIRST + 6, 6, "发送").setIcon(

                    android.R.drawable.ic_menu_send);                 // 设置菜单项

          menu.add(Menu.NONE, Menu.FIRST + 7, 7, "编辑").setIcon(

                    android.R.drawable.ic_menu_edit);                 // 设置菜单项

          return true;                                                     // 菜单显示

     }

     @Override

     public boolean onOptionsItemSelected(MenuItem item) {        // 选中某个菜单项

          switch (item.getItemId()) {                                      // 判断菜单项ID

          case Menu.FIRST + 1:

               Toast.makeText(this, "您选择的是“删除菜单”项。", Toast.LENGTH_LONG).show();

               break;

          case Menu.FIRST + 2:

               Toast.makeText(this, "您选择的是“保存菜单”项。", Toast.LENGTH_LONG).show();

               break;

          case Menu.FIRST + 3:

               Toast.makeText(this, "您选择的是“帮助菜单”项。", Toast.LENGTH_LONG).show();

               break;

          case Menu.FIRST + 4:

               Toast.makeText(this, "您选择的是“添加菜单”项。", Toast.LENGTH_LONG).show();

               break;

          case Menu.FIRST + 5:

               Toast.makeText(this, "您选择的是“详细菜单”项。", Toast.LENGTH_LONG).show();

               break;

          case Menu.FIRST + 6:

               Toast.makeText(this, "您选择的是“发送菜单”项。", Toast.LENGTH_LONG).show();

               break;

          case Menu.FIRST + 7:

               Toast.makeText(this, "您选择的是“设置菜单”项。", Toast.LENGTH_LONG).show();

               break;

          }

          return false;

     }

     @Override

     public void onOptionsMenuClosed(Menu menu) {                 // 菜单退出时调用

          Toast.makeText(this, "选项菜单关闭了", Toast.LENGTH_LONG).show();

     }

     @Override

     public boolean onPrepareOptionsMenu(Menu menu) {             // 菜单显示前调用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值