1. Android的上下文菜单在概念上和PC软件的右键菜单类似。当一个视图注册到一个上下文菜单时,执行一个在该对象上的“长按”(按住不动差不多两秒钟)动作,将出现一个提供相关功能的浮动菜单。上下文菜单可以被注册到任何视图对象中,不过,最常见的是用于列表视图ListView的item,在按中列表项时,会转换其背景色而提示将呈现上下文菜单。 (电话联系人列表提供了关于这个特性的一个很好的例子)。
  2. 注意:上下文菜单项不支持图标或快捷键。
  3. 为了创建一个上下文菜单,你必须重写这个活动的上下文菜单回调函数:onCreateContextMenu() 和onContextItemSelected()。在回调函数onCreateContextMenu()里,你可以通过使用一个add()方法来添加菜单项,或者通过扩充一个定义在XML中的菜单资源。然后,通过registerForContextMenu()为这个视图注册一个上下文菜单ContextMenu.
  4. 比如,下面的代码可以被用到Notepad应用程序中来为列表中的每一个注释添加一个上下文菜单:
  1. 11.public void onCreateContextMenu(ContextMenu menu, View v,
  2. 12.                                ContextMenuInfo menuInfo) {
  3. 13.  super.onCreateContextMenu(menu, v, menuInfo);
  4. 14.  menu.add(0, EDIT_ID, 0, "Edit");
  5. 15.  menu.add(0, DELETE_ID, 0,  "Delete");
  6. 16.}
  7. 17.
  8. 18.public boolean onContextItemSelected(MenuItem item) {
  9. 19.  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
  10. 20.  switch (item.getItemId()) {
  11. 21.  case EDIT_ID:
  12. 22.    editNote(info.id);
  13. 23.    return true;
  14. 24.  case DELETE_ID:
  15. 25.    deleteNote(info.id);
  16. 26.    return true;
  17. 27.  default:
  18. 28.    return super.onContextItemSelected(item);
  19. 29.  }
  20. 30.}
  21. 31.
  1. 在onCreateContextMenu()中,除了给出将添加MenuItems的ContextMenu外,还需要给定选中的视图和一个上下文菜单信息ContextMenuInfo对象,该对象提供了选中对象的附加信息。在本例中,onCreateContextMenu()没做什么特别的事-只是添加了一些菜单项。在onContextItemSelected() 回调函数中,我们从MenuItem中请求AdapterContextMenuInfo,该对象提供当前选中项的信息。我们从中所要的只是这个选中项的列表ID,所以无论编辑还是删除一个注释,我们通过这个对象的AdapterContextMenuInfo.info字段来找到该ID。这个ID被传递给editNote() 和deleteNote()方法来执行相应的动作。
  2. 现在,要为一个列表视图中的所有项注册上下文菜单,我们可以传递整个的列表视图对象给registerForContextMenu(View) 方法:
  3. registerForContextMenu(getListView());
  4. 记住,你可以传递任何视图对象来注册一个上下文菜单。这里,getListView()返回这个被用于Notepad应用程序的列表活动ListActivity中的列表视图对象。这样,这个列表中的任何item都被注册到这个上下文菜单。

转载于:https://blog.51cto.com/whatandroid/1073718

上下文菜单Context Menu相关推荐

  1. 5.4 Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())

    Android 的上下文菜单: Context Menu,registerForContextMenu(getListView()) Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视 ...

  2. Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())

    概述: Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单.任何视图都可以注册上下文菜单,不过, ...

  3. 学习之路(一)Android 的上下文菜单: Context Menu,registerForContextMenu(getListView());

    概述: Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单.任何视图都可以注册上下文菜单,不过, ...

  4. Android 中实现上下文菜单(Context menu)详解

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

  5. 手机浏览器中屏蔽img的系统右键菜单context menu

    我们知道通过oncontextmenu事件可以屏蔽浏览器右键菜单 $('img').on("contextmenu",function(E){E.preventDefault(); ...

  6. wxpython 树菜单单击_请教怎么在wxpython调用windows系统的右键菜单(context menu)?

    我在学习使用wxpython制作一款windows下的文件管理器,树形菜单已经实现,现在想实现在文件树节点上单击右键,弹出Explorer的上下文菜单,查阅资料无数..... wxpython没有内置 ...

  7. android菜单(menu)资源

    一. 菜单资源通常放在res/menu目录下,菜单资源是的根元素通常是<menu></menu>标记,在该标记下可以包含以下两个元素. 1.<item></i ...

  8. context menu

    android的菜单有三种: Options Menu 当用户按下menu button按钮时显示的菜单 Context Menu 当用户长久按住屏幕,即被注册显示上下文菜单的视图时显示的菜单 Sub ...

  9. Android进阶(二十八)上下文菜单ContextMenu使用案例

    上下文菜单ContextMenu使用案例 前言 回顾之前的应用程序,发现之前创建的选项菜单无法显示了.按照正常逻辑来说,左图中在"商品信息"一栏中应该存在选项菜单,用户可进行分享等 ...

最新文章

  1. JQuery新浪1630个表情插件
  2. 1463. Happiness to People!
  3. testbench实例 vhdl_学写 Testbench --- 结构篇VHDL实例
  4. redhat配置oracle yum源,Redhat5和6 YUM源配置的区别
  5. 方正计算机软件保护进超级用户,超级用户权限补丁(SuperSU Pro)含刷机包
  6. jpa 查询编写sql_学习编写基本SQL查询
  7. 连设计图都不会画,你还想做“系统架构师”?
  8. python生成json接口_基于python的Flask框架写json接口并且结合eolinker进行接口测试
  9. Android混淆编译Proguard
  10. 周立功USBCANFD_200U的Python调用
  11. python第三方库怎么下载安装_简谈下载安装Python第三方库的三种方法
  12. python教你如何把自己的微信变成机器人
  13. Java HTML导出PDF (二)
  14. 【办公基本软件】万彩办公大师教程丨PDF压缩工具
  15. 消愁计算机数字按键,明日之后2019最新钢琴谱数字编码顺序大全:纸短情长、起风了、往后余生[多图]...
  16. 微信h5隐藏导航栏和状态栏_导航栏未在SwiftUI中隐藏
  17. EV代码签名证书对可执行文件进行签名
  18. 【无标题】储能电池IEC62619认证 IEC62619测试什么内容
  19. 美国计算机硕博连读最快几年,美国硕博连读几年
  20. 【OA外勤签到】软件免费下载

热门文章

  1. java实现zip的压缩和解压(支持中文文件名)
  2. LoadRunner做性能测试 从设计到分析执行
  3. salt 基本组建之 grains,pillars(整理中)
  4. 【转载】Wireshark基本介绍和学习TCP三次握手
  5. 妨碍你成为CCIE的10个不良习惯
  6. 盛大文学推出“一人一书”计划,发布电子书战略
  7. spring cloud微服务分布式云架构 - Spring Cloud集成项目简介
  8. Javaweb学习笔记——(五)——————DOMXML目录
  9. 以Dapper、Zipkin和LightStep [x]PM为例阐述分布式跟踪的过去、现在和未来
  10. 如何高效的通过BP算法来训练CNN