Android 之菜单

来源:互联网 发布:软件开发流程图工具 编辑:程序博客网 时间:2024/06/05 19:53

 菜单是Android  系统中重要的用户接口,菜单Menu  不同于Tab 。

菜单可分为 

1.选项菜单,如图

创建选项菜单,需要重写Activity  的onCreateOptionsMenu().  Android系统的选项菜单最多显示6个菜单项.如果是5个,上面一行显示两个菜单项,下面一行显示3个菜单项

如果菜单项的标题过长,系统会显示三行两列的选项菜单.

 

处理选项菜单单击事件的方法有3种,

(1)  设置菜单项的单击事件,通过MenuItem  接口的setOnMenuItemClickListener

(2).  选项选中事件 ,通过Activity类 的onOptionItemSelected 方法

(3)  通过Activity 类的 onMenuItemSelected 方法,

注意:如果使用了菜单项的单击事件(即第一种方法),后两种方法都失效了,并且与菜单项关联的Activity 将失效,也就是说系统将会调用单击事件方法,将不会显示与菜单项关联的Activity 

---------------------

以下介绍上下文菜单与子菜单

上下文菜单的显示效果和子菜单相同点:  也分为菜单头和菜单项,在菜单项上不能显示图像,但可以在菜单头显示图像,上下文菜单和子菜单都不能嵌套子菜单

2. 带图像、复选框、选择项按钮的菜单,即子菜单

Menu接口的addSubMenu() 用来添加子菜单,  该方法定义如下:

SubMenu addSubMenu(final CharSequence title)

SubMenu addSubMenu(final int titleRes)

SubMenu addSubMenu(final  int groupId, final  int itemId, int order, final CharSequence title)

SubMenu addSubMenu(int  groudId,  int itemId,  int order,  int   titleRes)

3.  与任意View对象关联的  ContextMenu 上下文菜单,它相当于PC上的右键菜单

要触发上下文菜单,须通过长按某个视图实现。

(1)创建上下文菜单,需要重写Activity  的onCreateContextMenu()方法

该方法定义如下: public void onCreateContextMenu(ContextMenu  menu ,View view  ,ContextMenuInfo  menuInfo)

上下文菜单与其他菜单不同的是,必须注册到指定的View才能显示,注册上下文菜单可以使用Activity 的registerForContextMenu()方法实现

例如 TextView tv = (TextView)findViewById(R.id.tv);

         registerForContextMenu(tv);       //注册上下文菜单

在上下文菜单中可以添加子菜单

(2) 上下文菜单项的单击事件有3种:  可以使用单击事件、 onMenuItemSelected方法、 Activity类的onContextItemSelected方法

 ====================

在Activity 类还有一些与菜单相关的事件,如:

public boolean  onPrepareOptionsMenu(Menu menu)  在显示选项菜单之前被调用,一般用来即将显示的选项菜单

public boolean  onMenuOpened(int  featuredId,  Menu  menu)  在显示选项菜单之前被调用,在onPrepareOptionsMenu()方法之后调用

public void onOptionsMenuClosed(Menu  menu)   在关闭选项菜单时被调用

public void onContextMenuClosed(Menu  menu)   在关闭上下文菜单时被调用

 具体代码请参见 ch04_menu 工程

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果5s像素不好怎么办 华为mate边缘有缝怎么办 华为mate8边缘有缝怎么办 手机系统占用运行内存大怎么办 安卓手机储存空间不足怎么办 手机显示系统空间不足怎么办 联系人存储已停止运行怎么办 荣耀note8听筒声音小怎么办 红米4x内存不足怎么办 安卓电视内存小怎么办 红米手机运行内存不足怎么办 红米手机存储空间不足怎么办 华为手机储存空间不足怎么办 大麦机顶盒遥控器丢了怎么办 大麦盒子总自动加软件怎么办 小米手机玩王者荣耀卡怎么办 荣耀8青春版信号差怎么办 华为mate8电池不耐用怎么办 华为4x内存小怎么办 发现手机被用过怎么办 华为p8手机声音小怎么办 手机指纹解锁密码忘了怎么办 华为p10黑色掉漆怎么办 金立手机导航信号弱怎么办 手机导航时gps信号弱怎么办 三星手机导航gps信号弱怎么办 小米5导航信号弱怎么办 华为手机导航gps信号弱怎么办 手机屏玻璃裂了怎么办 oppo音量键坏了怎么办 魅蓝手机屏幕碎了怎么办 手机钢化膜边缘有气泡怎么办 手机贴钢化膜边缘有气泡怎么办 苹果手机钢化膜边缘有气泡怎么办 手机膜里的水泡怎么办 膜贴好了有气泡怎么办 后档玻璃膜气泡怎么办 贴膜里面有灰尘怎么办 贴膜边缘不粘怎么办 贴膜时候的气泡怎么办 贴手机膜起泡了怎么办