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

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

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

Android中的Menu功能菜单-OptionsMenu[选项菜单]_第1张图片

我们要在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. Mars Android视频学习笔记——01_16_SQLite使用方法
  2. Android之UI学习篇八:使用GridView实现九宫格的菜单
  3. Android 总结:进阶之路(资源与方法)
  4. Android 关闭所有Activity完全退出程序方法
  5. android 图文列表的实现方法
  6. 使用universal-image-loader中出现的EOFException解决方法
  7. android---菜单栏选项
  8. android 隐藏输入键盘的方法
  9. Android 使用decodeFile方法加载手机磁盘中的图片文件

随机推荐

  1. Android 使用ContentObserver监听短信的
  2. Android改变系统自带ProgressDialog的文
  3. Android 实现手机震动功能
  4. android中获取包名,类名
  5. android 跳转到小米手机神隐模式
  6. android http get请求中的乱码问题
  7. Android 图片左上角、右上角标签tag
  8. rk3288 android 7.1 系统root
  9. android 支持的语言列表
  10. Android 获取通讯录联系人