展会信息港展会大全

Android中的Menu功能菜单-OptionsMenu[选项菜单]
来源:互联网   发布日期:2015-10-13 07:34:54   浏览:986次  

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

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

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

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

\

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

代码如下:

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;

}

}

注:如果我们想通过另外一种方式来实现和点击Menu键一样的功能,例如:点击Menu键时会弹出和隐藏选项菜单,如果我想通过点击某一个Button按钮来实现同样的功能呢?即通过调用系统的 openOptionsMenu(); 方法就OK了。

赞助本站

人工智能实验室

相关热词: OptionsMenu

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港