`

动态更新菜单项与处理菜单选择

阅读更多

public boolean onOptionsItemSelected(MenuItem item) {

super.onOptionsItemSelected(item);

// Find which menu item has been selected

switch (item.getItemId()) 

{

// Check for each known menu item

case (MENU_ITEM):

[ ... Perform menu handler actions ... ]

return true;

}

// Return false if you have not handled the menu item.

return false;

}

 

 

 

动态更新菜单项

 通过重写onPrepareOptionsMenu方法,你可以每次在菜单项显示时基于应用程序的状态来修改菜单。它允许你动态的

disable/enable菜单项,设置可见性以及修改菜单文本。

 

 

为了动态的修改菜单项,你可以在onCreateOptionsMenu方法中,在创建菜单项时保留一个对它们的引用,或者你可以使用menu.findItem方法,如下面的代码片段所示,onPrepareOptionsMenu方法被重写:

onPrepareOptionsMenu方法被重写:

 

@Override

public boolean onPrepareOptionsMenu(Menu menu) {

super.onPrepareOptionsMenu(menu);

MenuItem menuItem = menu.findItem(MENU_ITEM);

[ ... modify menu items ... ]

return true;

}

 

 

 

处理菜单选择

 

Android使用一个事件处理函数——onOptionsItemSelected 来处理所有的菜单选择事件。被选择的菜单项会作为MenuItem参数传入这个方法。

 

为了响应菜单选择,将item.getItemId的值与当初定义菜单项的ID进行比较,进行相应的处理,如下代码所示:

 

分享到:
评论

相关推荐

    使用菜单选择程序菜单项.doc

    使用菜单选择程序,要求设计一个比较实用的菜单,通过菜单选择...题中各个功能以设计的菜单为基础,增加菜单项的处理功能。首先设计一个含有多个菜单项的菜单演示程序,然后再通过函数调用为这些菜单项配上相应的功能。

    pb动态生成菜单.txt

    那么就可以按照数组类型变量来处理,我们可以对其进行upperbound()、lowerbound()等函数操作,还可以进行数组的扩展,即添加新项目,这一点很重要,它是我们整篇文章的核心,如何利用PB实现动态添加菜单,...

    菜单的工作原理及编写应用

    菜单的工作原理及编写应用,菜单命令消息在...动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。

    VC6_menu.rar_MFC menu_mfc菜单弹出_vc6.0菜单设计_动态菜单_原理图

    关于VC6.0的菜单界面设计的源代码,菜单的...动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。

    ios-动态菜单-第三版本,请看图!.zip

    这个是菜单的第三版本了,增加了动态处理菜单项个数的功能 如果这个demo或多或少能够帮助到您,请动手点个star,您的star是我一直的动力 Github:https://github.com/KongPro/PopMenuTableView 功能:1、...

    PB动态生成菜单

    那么就可以按照数组类型变量来处理,我们可以对其进行upperbound()、lowerbound()等函数操作,还可以进行数组的扩展,即添加新项目,这一点很重要,它是我们整篇文章的核心,如何利用PB实现动态添加菜单,...

    Delphi在窗口中添加系统菜单项.rar

    Delphi在WinForm窗口菜单中添加系统菜单项:  procedure TForm1.user_sysmenu(var msg: twmmenuselect);  begin  if msg.iditem=101 then  showmessage('响应系统菜单!')  else  inherited; //作缺省处理,必须...

    Java实现窗体右键菜单.rar

    //菜单项事件处理  String[] str = {"Blue","Pink","Yellow","Red","Orange"}; //菜单项名称  ButtonGroup colorGroup=new ButtonGroup(); //实例化按钮组  popupMenu=new JPopupMenu(); //实例化弹出菜单 ...

    从VC项目的菜单资源构造弹出式菜单

    (2)定义空的弹出式菜单,将资源菜单项逐个拷贝过来。a.如果遇到分隔线或者菜单项,直接使用CMenu::AppendMenu复制;b.如果遇到子菜单,先创建子菜单并完成子菜单项的拷贝,然后将子菜单作为一项加入到当前的菜单中...

    从VC项目资源构建(自绘)弹出式菜单

    都会发出此消息),为每个子菜单项单独生成一个CCmdUI对象,调用其CCmdUI::DoUpdate函数,来手动触发ON_UPDATE_COMMAND_UI宏中对应的消息处理函数,使得菜单项能够根据应用环境进行激活和禁止。详见博客: ...

    Jonty之VC++讲座笔记-菜单编程

    当点击一个菜单项的时候,最先接受到菜单项消息的是CMainFrame框架类,CMainFrame框架类将会把菜单项消息交给它的子窗口View类,由View类首先进行处理;如果View类检测到没对该菜单项消息做响应,则View类把菜单项...

    jQuery+ul+javascript 实现的跨浏览器多级菜单

    /** * ///////////////////////////////////////////////// ... * @param all: boolean true 返回所有选中菜单项,false 只返回叶节点菜单项 * @return array * * ////////////////////////////////////// * */

    菜单的工作原理及编写应用ppt和录像

    菜单的工作原理及编写应用-菜单的工作原理...动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。

    基于matlab实现首先单击载入图像菜单项(载入背景和前景图像)

    基于matlab实现首先单击载入图像...2.然后单击车辆提取菜单项,依次进行图像做差、二值化、开运算、图像去噪、图像填充处理。3.再单击轮廓提取菜单项,提取车辆轮廓。4.最后单击车型识别菜单项,对车辆进行识别。.rar

    ios-仿iPad菜单(动态菜单-第三版本).zip

    这个是菜单的第三版本了,增加了动态处理菜单项个数的功能 *** Github:如果这个demo或多或少能够帮助到您,请动手点个star,您的star是我一直的动力 *** *** 链接

    自己写的美化菜单的CMenuEx类

    //所有的菜单(包括顶层框架菜单与弹出式菜单)项均会触发OnInitMenu函数,分以下几种情况: // 一 顶层框架菜单:就是文件,编辑等这种菜单,框架菜单在主窗口显示后并不会自动调用OnInitMenu函数, // 必须手动...

    VC++菜单编写原理及实例程序

    摘要:VC/C++源码,界面编程,菜单 孙鑫主讲...动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。

    BCDautofix双系统启动菜单修复

    例如可以在xp中运行添加其它分区的vista启动菜单,自动生成xp+vista多系统启动菜单,反过来在vista中运行添加xp的启动菜单就需要满足xp的三个必要引导文件(ntldr/ntdetect....,不会影响已存在的xp启动菜单项)...

    C实训项目2-基于菜单的界面程序设计

    附有详细实验报告,源程序及详细的PPT讲解. 课题要求 1、采用结构体描述菜单。 2、尽可能优化设计,采用通用菜单... 3、鼓励创新,实现类WINDOWS系统的菜单项格式。可以灰色显示,隐藏,加标记,给出菜单选择提示等。

    AndroidQQ5.0 超高仿侧滑菜单项目完整实例代码

    【Android】QQ5.0 超高仿侧滑菜单项目完整实例代码资源描述如下: 一、项目概述 本项目是一个Android平台的超高仿QQ5.0版本的侧滑菜单实现。...主Activity:负责加载和显示侧滑菜单,处理菜单项的点击事

Global site tag (gtag.js) - Google Analytics