`
dyllove98
  • 浏览: 1409445 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39188
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80266
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133389
社区版块
存档分类
最新评论

android 上下文菜单Context Menu

阅读更多
上下文菜单Context Menu

Android的上下文菜单在概念上和PC软件的右键菜单类似。当一个视图注册到一个上下文菜单时,执行一个在该对象上的“长按”(按住不动差不多两秒钟)动作,将出现一个提供相关功能的浮动菜单。上下文菜单可以被注册到任何视图对象中,不过,最常见的是用于列表视图ListView的item,在按中列表项时,会转换其背景色而提示将呈现上下文菜单。 (电话联系人列表提供了关于这个特性的一个很好的例子)。

注意:上下文菜单项不支持图标或快捷键。

为了创建一个上下文菜单,你必须重写这个活动的上下文菜单回调函数:onCreateContextMenu() 和onContextItemSelected()。在回调函数onCreateContextMenu()里,你可以通过使用一个add()方法来添加菜单项,或者通过扩充一个定义在XML中的菜单资源。然后,通过registerForContextMenu()为这个视图注册一个上下文菜单ContextMenu.

比如,下面的代码可以被用到Notepad应用程序中来为列表中的每一个注释添加一个上下文菜单:

public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, v, menuInfo);
  menu.add(0, EDIT_ID, 0, "Edit");
  menu.add(0, DELETE_ID, 0,  "Delete");
}
 
public boolean onContextItemSelected(MenuItem item) {
  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
  switch (item.getItemId()) {
  case EDIT_ID:
    editNote(info.id);
    return true;
  case DELETE_ID:
    deleteNote(info.id);
    return true;
  default:
    return super.onContextItemSelected(item);
  }
}

在onCreateContextMenu()中,除了给出将添加MenuItems的ContextMenu外,还需要给定选中的视图和一个上下文菜单信息ContextMenuInfo对象,该对象提供了选中对象的附加信息。在本例中,onCreateContextMenu()没做什么特别的事-只是添加了一些菜单项。在onContextItemSelected() 回调函数中,我们从MenuItem中请求AdapterContextMenuInfo,该对象提供当前选中项的信息。我们从中所要的只是这个选中项的列表ID,所以无论编辑还是删除一个注释,我们通过这个对象的AdapterContextMenuInfo.info字段来找到该ID。这个ID被传递给editNote() 和deleteNote()方法来执行相应的动作。

现在,要为一个列表视图中的所有项注册上下文菜单,我们可以传递整个的列表视图对象给registerForContextMenu(View) 方法:

registerForContextMenu(getListView());

记住,你可以传递任何视图对象来注册一个上下文菜单。这里,getListView()返回这个被用于Notepad应用程序的列表活动ListActivity中的列表视图对象。这样,这个列表中的任何item都被注册到这个上下文菜单。



 

 个人博客已经迁移到如下网站 萌萌的IT人后续所有的文章都会在此发布

 

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

分享到:
评论
4 楼 sserf 2011-09-23  
谢谢了,很受用!
3 楼 无愧衾影 2011-04-01  
又学了一招技术!
2 楼 cqllang 2011-03-24  
getListView().getChildAt(info.position)可以得到选的子节点的View.
1 楼 蓝月儿 2011-03-17  
注意:上下文菜单项不支持图标或快捷键。  这个是什么意思啊 有一个项目是ListView每一行有一个图片,长按菜单 获取不到id了

相关推荐

    上下文菜单与上下文操作模式

    在Android应用开发中,上下文菜单(Context Menu)和上下文操作模式(Contextual Action Mode)是两种常见的用户交互设计,它们提供了在特定情境下对数据进行操作的界面。这两种设计模式在处理列表、网格或其他可选元素...

    Android 之 上下文菜单、选项菜单、子菜单

    在Android应用开发中,上下文菜单(Context Menu)、选项菜单(OptionsMenu)和子菜单(Submenu)是三种重要的交互方式,用于提供用户与应用界面的多种操作选项。它们各自有不同的应用场景和设计规范,对于提升用户体验至...

    Android 为EditText文本框添加长按显示上下文菜单.rar

    Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...

    创建上下文菜单

    在Android开发中,上下文菜单(Context Menu)是一种常见的交互元素,它允许用户在长按某个视图或项时出现一个包含相关操作的弹出菜单。上下文菜单通常用于提供与特定视图或数据相关的动作选项,而不是全局的操作。在...

    android 选项菜单和上下文菜单

    在Android应用开发中,选项菜单(OptionsMenu)和上下文菜单(ContextMenu)是两种常见的交互方式,用于提供用户在特定场景下的操作选择。本项目通过Android Studio实现,将这两种菜单集成在一个应用中,使得用户...

    上下文菜单

    上下文菜单,也被称为右键菜单,是计算机用户界面中的一种常见交互元素,它提供了与当前屏幕内容相关的操作选项。当用户在特定区域(如文件、图标或文本)上单击鼠标右键时,上下文菜单会弹出,显示与该选定对象相关...

    菜单 选项菜单 子菜单 上下文菜单

    本案例深入探讨了菜单的三种主要类型:普通菜单(Option Menu)、子菜单(Submenu)以及上下文菜单(Context Menu)。下面将详细阐述这三种菜单的使用方法、特点及其实现代码。 1. 普通菜单(Option Menu) 普通菜单通常...

    菜单,包括选项菜单,子菜单,上下文菜单

    接下来是上下文菜单(Context Menu),它是在用户长时间按压某个视图元素时出现的临时菜单,提供了与该特定元素相关的操作。上下文菜单的注册是在Activity的`registerForContextMenu(View view)`方法中完成,而展示...

    Context-Menu.Android源码

    【Context-Menu.Android源码】是一个专门为Android平台设计的开源项目,主要目的是提供一个自定义上下文菜单(Context Menu)的实现。在Android系统中,上下文菜单通常用于响应长按事件,显示与选定项相关的操作选项...

    Kotlin上下文菜单_kotlin_

    本教程将深入探讨如何使用Kotlin实现上下文菜单(Context Menu),这对于任何想要提升Android应用交互体验的初学者来说是十分重要的知识点。 首先,我们需要理解上下文菜单的概念。在Android中,上下文菜单(Context ...

    上下文菜单+listview

    在Android开发中,"上下文菜单(Context Menu)"和"ListView"是两个非常重要的组件,尤其在构建用户交互界面时。本文将深入探讨如何在Eclipse环境下利用这两个组件创建一个功能完善的移动应用。 首先,让我们了解**上...

    如何写上下文菜单

    在Android、iOS、Windows等操作系统以及许多Web应用中,上下文菜单常常扮演着快速访问功能的角色。当用户对特定视图执行长按操作时,上下文菜单会弹出,显示与该视图相关的动作或选项。这种设计极大地提高了用户体验...

    定制编辑框的上下文菜单

    在编程和软件开发中,上下文菜单(Context Menu)是一种常用的人机交互元素,它根据用户的操作环境提供相关的操作选项。在编辑框中,上下文菜单通常包含与文本操作相关的命令,如复制、粘贴、剪切等。本文将深入探讨...

    WebView上下文菜单demo

    本示例“WebView上下文菜单demo”专注于实现WebView的上下文菜单(ContextMenu),通过自定义菜单功能,如复制文本等,提升用户在浏览网页时的交互体验。 `ContextMenu`是Android系统提供的一种用户界面元素,当用户...

    ListView:单击和长按弹出上下文菜单(ContextMenu)

    这里的`@menu/context_menu`引用了我们在`res/menu`目录下创建的上下文菜单资源文件。 接下来,我们需要在Activity中重写以下几个方法来处理上下文菜单的相关逻辑: 1. `onCreateContextMenu(ContextMenu menu, ...

    《Menu详解(三):使用上下文菜单》对应源码

    本篇文章将深入解析如何使用上下文菜单(Context Menu),这是Menu的一种特殊形式,通常在长按操作后出现。上下文菜单提供了针对特定视图或数据项的操作,为用户提供了一种直观的方式来执行与当前环境相关的动作。 ...

    Yalantis/Context-Menu.Android

    总的来说,`Yalantis/Context-Menu.Android`为Android开发者提供了一个强大且易用的工具,用于创建具有视觉吸引力的上下文菜单。通过利用这个库,你可以提升应用的用户体验,使用户在享受动画效果的同时,更便捷地...

    Android之上下文菜单ContextMenu

    在上面的代码中,`R.menu.context_menu`是指向XML布局文件的引用,该文件定义了上下文菜单的各个条目。 ### 2. 定义菜单资源 在`res/menu`目录下创建一个XML文件,例如`context_menu.xml`,并定义菜单项: ```xml...

    Android初级入门——菜单Menu的简单使用

    菜单可以分为几种类型:选项菜单(Option Menu),上下文菜单(Context Menu),弹出窗口(Popup Menu)和子菜单(Sub Menu)。 **1. 选项菜单(Option Menu)** 选项菜单是最常见的菜单类型,它在动作栏中显示。创建选项...

    2011.09.23——— android sample之Notepad(context menu)

    标题中的“2011.09.23——— android sample之Notepad(context menu)”表明这是一个关于Android应用开发的示例项目,具体是针对Notepad应用的上下文菜单(Context Menu)功能的实践。在Android开发中,上下文菜单是...

Global site tag (gtag.js) - Google Analytics