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了。

更多相关文章

  1. Android(安卓)属性动画(一):Animator属性动画相对于Animation的优势
  2. Android(安卓)按钮点击事件监听的3重方式
  3. Android之UI学习篇八:使用GridView实现九宫格的菜单
  4. Android(安卓)Studio点击空白处收起软键盘
  5. Android水波纹点击效果
  6. 运行Android(安卓)Studio时,APP安装失败--Installation failed wi
  7. Android(安卓)点击回退按钮时弹出提示框
  8. Android应用程序启动画面
  9. Android(安卓)点击按钮隐藏键盘

随机推荐

  1. android系统中log机制
  2. android第三天课程 activity生命周期
  3. 通杀所有系统的硬件漏洞?聊一聊Drammer,And
  4. Android沉浸式状态栏,看完这篇就够了!
  5. 中国的 Android:尚未发掘的应用市场?
  6. 做好准备,让你的短信应用迎接Android(安卓
  7. android开发——通过子线程更新界面UI
  8. Android 内功心法(1.2)——android常用设
  9. Android系统信息获取 之十二:获取屏幕分辨
  10. Android 自定义组件