`

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

阅读更多

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进行比较,进行相应的处理,如下代码所示:

 

分享到:
评论

相关推荐

    动态添加、删除菜单项

    在软件开发中,尤其是涉及到图形用户界面(GUI)的应用程序,动态添加和删除菜单项是一项常见的需求。这通常发生在根据用户权限、应用状态或者运行时条件来改变菜单栏的显示内容。下面我们将深入探讨这个话题,包括...

    易语言动态添加菜单和事件

    动态添加菜单和事件是GUI(图形用户界面)编程中的常见操作,允许程序在运行时根据需要创建和修改菜单,同时处理与这些菜单项相关的用户交互。 在易语言中,菜单通常用于提供用户友好的操作选项。动态添加菜单意味...

    VB6.0源码示例文件之 动态增添和移除菜单

    比如,当菜单项被添加或移除时,应确保更新整个菜单的布局,以防止出现空隙或重叠。VB6.0提供了`Rebuild`方法,可以重新绘制整个菜单以适应变化。 总结来说,VB6.0中的动态增添和移除菜单是通过编程方式控制...

    如何动态添加和删除菜单项

    - 如果菜单项需要关联事件,记得为它分配相应的事件处理函数,以便在用户选择时执行预期操作。 3. **动态删除菜单项**: - **删除过程**:删除菜单项同样涉及查找特定菜单项并移除它。在C#中,可以使用`Remove`...

    VB动态添加菜单项内容.rar

    在VB6.0环境下,开发用户界面时,有时我们需要根据需求动态地添加菜单项,以提供灵活的功能扩展或自定义选项。"VB动态添加菜单项内容"这个压缩包中的资源,正是提供了这样的功能实现。通过VB6.0,我们可以创建一个...

    MFC-动态添加和删除菜单栏

    动态添加和删除菜单栏是指在程序运行时根据需要创建、修改或移除菜单项,而不是在设计阶段静态定义。这种灵活性使得程序能够根据用户的操作或者特定条件动态调整其界面。 在MFC中,菜单主要通过CMenu类来操作。要...

    C# WinForm 用MenuStrip动态生成菜单并动态加载事件

    在 C# WinForm 开发中,经常需要根据不同的需求动态生成菜单项,并且为这些菜单项绑定相应的事件处理程序。本文将详细介绍如何利用 `MenuStrip` 控件来实现这一功能。 #### 一、背景介绍 在 WinForm 应用程序开发...

    C#实现Winform动态添加菜单的方法

    3. 为菜单项设置事件处理器,通常是在创建菜单项时将`Click`事件与指定的事件处理函数关联。 4. 在事件处理器中根据需要执行相应的操作,例如打开新的窗体或执行其他业务逻辑。 这个过程使你的应用程序能够根据运行...

    Microsoft Word - 如何动态添加菜单菜单项子菜单.pdf

    在添加了菜单项和子菜单之后,我们还需要处理菜单的响应事件。对于资源中添加的菜单,可以通过ClassWizard工具添加菜单的响应事件。而对于通过代码动态创建的菜单,则需要手工实现菜单的消息映射。在类的头文件中...

    MFC 菜单项带图标

    接着,在“Bitmap”字段中,选择之前添加到资源的图标,这样就将图标与菜单项关联起来。 3. **CMenu类和CMENUITEMINFO结构** MFC提供了`CMenu`类来处理菜单操作。要设置菜单项的图标,你需要使用`CMENUITEMINFO`...

    根据表中数据动态生成菜单

    4. **事件绑定**:为菜单项添加点击事件,确保当用户选择某个菜单项时,能够触发相应的操作,如跳转页面、执行功能等。 在提供的"CreateIniMenu"文件中,可能包含了实现这一功能的具体代码,例如使用某种编程语言...

    动态创建与读取菜单源码

    在PB中,动态创建菜单意味着在程序运行时根据需要生成菜单项,而不是在设计时预定义。这通常用于根据用户权限、系统状态或其他条件灵活地构建菜单结构。 要实现动态创建菜单,首先需要理解PB中的菜单对象。在PB中,...

    C#动态添加菜单,一步步初学教学源码

    步骤4:条件判断与动态生成 在实际应用中,可能需要根据特定条件(如用户权限、配置文件等)来决定是否显示或添加某个菜单项。可以通过条件语句来实现: ```csharp if (hasPermission) { // 如果用户有权限,添加...

    动态创建菜单C#

    MenuStrip允许我们添加菜单项、子菜单项以及与它们关联的事件处理程序。 1. **MenuStrip控件**: 这是Windows Forms中用于创建菜单栏的主要控件。它支持拖放操作,方便在设计时添加菜单项,但也可以在代码中动态添加...

    C# 向窗体的系统菜单添加菜单项

    4. **处理菜单事件**:为了响应新菜单项的选择,我们需要重写窗体的`WndProc`方法,拦截`WM_COMMAND`消息。当用户点击菜单项时,系统会发送这个消息。你可以根据`wParam`参数识别出被点击的菜单项,然后执行相应的...

    Example025-动态装入菜单项.rar

    7. 为菜单项添加事件处理程序,以便在用户选择菜单项时执行相应的操作。 在`Example025-动态装入菜单项`的代码中,可能包含了以下关键部分: - `Form_Load`事件:这是窗体加载时触发的事件,通常在这里进行初始化...

    VC++动态菜单设计

    例如,当你检测到用户选择了“绘图”操作,可以在此时添加“矩形”菜单项,并将其关联到相应的处理函数。 4. **响应菜单事件**: 为新添加的菜单项设置消息映射,确保当用户点击该菜单项时,能触发正确的事件处理...

    VS2008中动态添加,删除菜单项

    在Visual Studio 2008(VS2008)中,开发人员有时需要根据程序运行时的状态或用户需求动态地向菜单栏添加或删除菜单项。这涉及到Windows API中的菜单处理函数以及MFC(Microsoft Foundation Classes)库的使用。本篇...

    POWERBUILDER语言,简述如何实现动态添加菜单

    此外,还可以通过事件处理程序来响应用户点击动态生成的菜单项,实现相应的功能。例如,为`my_menu_item`添加一个事件处理程序,处理`Click`事件: ```pb my_menu_item.Click += MyMenuItem_Click ``` 然后定义`...

    asp.net 动态装入菜单项源码

    在ASP.NET中,动态加载菜单项是一项重要的功能,它允许开发者根据用户角色、权限或者特定条件在运行时生成菜单结构。这极大地提高了应用的灵活性和用户体验。 这个资源“asp.net 动态装入菜单项源码”显然是一个...

Global site tag (gtag.js) - Google Analytics