Android中的基本控件——菜单:Menu

摘要:

  • 菜单在系统的开发之中是必不可少的一种组件,在Android手机上往往都会存在一个“Menu”的键当选择之后会在屏幕的底部显示系统的菜单,在一个菜单之中可以包含多个菜(MenuItem),在一个菜单之中最多只会显示2排3列的菜单项,如果现在的菜单项超出了6个,则超出部分会自动隐藏,而且会自动出现一个“更多”的菜单项提示用户。

  • 在Android系统之中,菜单一共有三类:选项菜单(OptionsMenu)、上下文(ContextMenu)和子菜单(SubMenu)。

Activity类中定义的菜单操作方法

No. 方法 类型 描述
1 public void closeContextMenu() 普通 关闭上下文菜单
2 public void closeOptionsMenu() 普通 关闭选项菜单
3 public void closeOptionsMenu() 普通 设置上下文菜单项
4 public void onContextMenuClosed(Menu menu) 普通 上下文菜单关闭时触发
5 public void onContextMenuClosed(Menu menu) 普通 创建上下文菜单
6 public void onCreateContextMenu(ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo) 普通 当用户选择“Menu”按钮时调用此操作,可以生成一个选项菜单
7 public booleanonMenuItemSelected(int featureId, MenuItem item) 普通 设置选项菜单项
8 public booleanonOptionsItemSelected(MenuItem item) 普通 当一个选项菜单中的某个菜单项被选中时触发此操作
9 public void onOptionsMenuClosed(Menu menu) 普通 当选项菜单关闭时触发此操作
10 public boolean onPrepareOptionsMenu(Menu menu) 普通 当选项菜单显示之前操作触发此操作
11 public void openOptionsMenu() 普通 打开选项菜单
12 public MenuInflater getMenuInflater() 普通 取得MenuInflater类的对象
13 public void registerForContextMenu(View view) 普通 注册上下文菜单
No. 方法及常量 类型 描述
1 public static final int FIRST 常量 用于定义菜单项的编号
2 public static final int NONE 常量 表示菜单不分组
3 public abstract MenuItem add(int groupId, int itemId, int order,CharSequence title) 普通 此方法用于向菜单之中添加菜单项,参数作用: groupId:菜单所在的组编号;itemId:菜单项的ID;order:菜单的出现顺序;title:菜单的显示文字。
4 public abstract MenuItem add(int groupId, int itemId, int order, int titleRes) 普通 增加菜单项
5 public abstract SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes) 普通 增加子菜单
6 public abstract SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title) 普通 增加子菜单
7 public abstract void removeGroup(int groupId) 普通 删除一个菜单组
8 public abstract void removeItem(int id) 普通 删除一个菜单项
9 public abstract void clear() 普通 清空菜单
10 public abstract void close() 普通 关闭菜单
11 public abstract MenuItem getItem(int index) 普通 返回指定的菜单项
12 public abstract int size() 普通 返回菜单项的个数
No. 方法及常量 类型 描述
1 public abstract int getGroupId() 普通 得到菜单组编号
2 public abstract Drawable getIcon() 普通 得到菜单项上的图标
3 public abstract int getItemId() 普通 得到菜单项上的ID
4 public abstract int getOrder() 普通 得到菜单项上的编号
5 public abstract SubMenu getSubMenu() 普通 取得子菜单
6 public abstract CharSequence getTitle() 普通 得到菜单项上的标题
7 public abstract boolean isCheckable() 判断菜单项是否可用
8 ublic abstract boolean isChecked() 普通 判断此菜单项是否被选中
9 public abstract boolean isEnabled() 普通 判断此菜单项是否可用
10 public abstract boolean isVisible() 普通 判断此菜单项是否可见
11 public abstract MenuItem setCheckable(boolean checkable) 普通 设置此菜单项是否可用
12 public abstract MenuItem setChecked(boolean checked) 普通 设置此菜单项是否默认选中
13 public abstract MenuItem setEnabled(boolean enabled) 普通 设置此菜单项是否可用
14 public abstract MenuItem setIcon(Drawable icon) 普通 设置此菜单项的图标
15 public abstract MenuItem setIcon(int iconRes) 普通 设置此菜单项的图标
16 public abstract Menu ItemsetOnMenuItemClickListener (MenuItem.OnMenuItemClic kListener menuItemClickListener) 普通 设置此菜单项的监听操作
17 public abstract MenuItem setTitle(CharSequence title) 普通 设置此菜单项的标题
18 public abstract MenuItem setVisible(boolean visible) 普通 设置此菜单项是否可见
19 public abstract ContextMenu.ContextMenuInfo getMenuInfo() 普通 得到菜单中的内容

选项菜单:OptionsMenu

选项菜单是一个最基本的菜单,也是用户在使用手机时最常见的一种形式,如果要想实现选项菜单,则直接在程序之中覆写android.app.Activity类的如下几个方法:
  • public boolean onCreateOptionsMenu(Menu menu):在此方法之中设置多个菜单项(MenuItem);
  • 返回值:返回true表示显示菜单,反之则不显示;
  • public boolean onOptionsItemSelected(MenuItem item):在此方法之中判断菜单项的操作;
  • public void onOptionsMenuClosed(Menu menu):当菜单关闭时触发此操作;
  • public boolean onPrepareOptionsMenu(Menu menu):在菜单显示前触发此操作;
在main.xml文件之中定义要显示的组件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout                       <!-线性布局-->
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/MyLayout"              <!-布局管理器ID-->
    android:orientation="vertical"          <!-所有组件垂直摆放-->
    android:layout_width="fill_parent"          <!-布局管理器宽度为屏幕宽度-->
    android:layout_height="fill_parent">            <!-布局管理器高度为屏幕高度-->
    <TextView                   <!-文本显示组件-->
        android:id="@+id/txt"           <!-组件ID,程序中使用-->
        android:layout_width="wrap_content"     <!-组件宽度为文字宽度-->
        android:layout_height=&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值