上下文菜单Context Menu
- Android的上下文菜单在概念上和PC软件的右键菜单类似。当一个视图注册到一个上下文菜单时,执行一个在该对象上的“长按”(按住不动差不多两秒钟)动作,将出现一个提供相关功能的浮动菜单。上下文菜单可以被注册到任何视图对象中,不过,最常见的是用于列表视图ListView的item,在按中列表项时,会转换其背景色而提示将呈现上下文菜单。 (电话联系人列表提供了关于这个特性的一个很好的例子)。
- 注意:上下文菜单项不支持图标或快捷键。
- 为了创建一个上下文菜单,你必须重写这个活动的上下文菜单回调函数:onCreateContextMenu() 和onContextItemSelected()。在回调函数onCreateContextMenu()里,你可以通过使用一个add()方法来添加菜单项,或者通过扩充一个定义在XML中的菜单资源。然后,通过registerForContextMenu()为这个视图注册一个上下文菜单ContextMenu.
- 比如,下面的代码可以被用到Notepad应用程序中来为列表中的每一个注释添加一个上下文菜单:
- 11.public void onCreateContextMenu(ContextMenu menu, View v,
- 12. ContextMenuInfo menuInfo) {
- 13. super.onCreateContextMenu(menu, v, menuInfo);
- 14. menu.add(0, EDIT_ID, 0, "Edit");
- 15. menu.add(0, DELETE_ID, 0, "Delete");
- 16.}
- 17.
- 18.public boolean onContextItemSelected(MenuItem item) {
- 19. AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
- 20. switch (item.getItemId()) {
- 21. case EDIT_ID:
- 22. editNote(info.id);
- 23. return true;
- 24. case DELETE_ID:
- 25. deleteNote(info.id);
- 26. return true;
- 27. default:
- 28. return super.onContextItemSelected(item);
- 29. }
- 30.}
- 31.
- 在onCreateContextMenu()中,除了给出将添加MenuItems的ContextMenu外,还需要给定选中的视图和一个上下文菜单信息ContextMenuInfo对象,该对象提供了选中对象的附加信息。在本例中,onCreateContextMenu()没做什么特别的事-只是添加了一些菜单项。在onContextItemSelected() 回调函数中,我们从MenuItem中请求AdapterContextMenuInfo,该对象提供当前选中项的信息。我们从中所要的只是这个选中项的列表ID,所以无论编辑还是删除一个注释,我们通过这个对象的AdapterContextMenuInfo.info字段来找到该ID。这个ID被传递给editNote() 和deleteNote()方法来执行相应的动作。
- 现在,要为一个列表视图中的所有项注册上下文菜单,我们可以传递整个的列表视图对象给registerForContextMenu(View) 方法:
- registerForContextMenu(getListView());
- 记住,你可以传递任何视图对象来注册一个上下文菜单。这里,getListView()返回这个被用于Notepad应用程序的列表活动ListActivity中的列表视图对象。这样,这个列表中的任何item都被注册到这个上下文菜单。
转载于:https://blog.51cto.com/whatandroid/1073718
上下文菜单Context Menu相关推荐
- 5.4 Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
Android 的上下文菜单: Context Menu,registerForContextMenu(getListView()) Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视 ...
- Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
概述: Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单.任何视图都可以注册上下文菜单,不过, ...
- 学习之路(一)Android 的上下文菜单: Context Menu,registerForContextMenu(getListView());
概述: Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单.任何视图都可以注册上下文菜单,不过, ...
- Android 中实现上下文菜单(Context menu)详解
博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
- 手机浏览器中屏蔽img的系统右键菜单context menu
我们知道通过oncontextmenu事件可以屏蔽浏览器右键菜单 $('img').on("contextmenu",function(E){E.preventDefault(); ...
- wxpython 树菜单单击_请教怎么在wxpython调用windows系统的右键菜单(context menu)?
我在学习使用wxpython制作一款windows下的文件管理器,树形菜单已经实现,现在想实现在文件树节点上单击右键,弹出Explorer的上下文菜单,查阅资料无数..... wxpython没有内置 ...
- android菜单(menu)资源
一. 菜单资源通常放在res/menu目录下,菜单资源是的根元素通常是<menu></menu>标记,在该标记下可以包含以下两个元素. 1.<item></i ...
- context menu
android的菜单有三种: Options Menu 当用户按下menu button按钮时显示的菜单 Context Menu 当用户长久按住屏幕,即被注册显示上下文菜单的视图时显示的菜单 Sub ...
- Android进阶(二十八)上下文菜单ContextMenu使用案例
上下文菜单ContextMenu使用案例 前言 回顾之前的应用程序,发现之前创建的选项菜单无法显示了.按照正常逻辑来说,左图中在"商品信息"一栏中应该存在选项菜单,用户可进行分享等 ...
最新文章
- JQuery新浪1630个表情插件
- 1463. Happiness to People!
- testbench实例 vhdl_学写 Testbench --- 结构篇VHDL实例
- redhat配置oracle yum源,Redhat5和6 YUM源配置的区别
- 方正计算机软件保护进超级用户,超级用户权限补丁(SuperSU Pro)含刷机包
- jpa 查询编写sql_学习编写基本SQL查询
- 连设计图都不会画,你还想做“系统架构师”?
- python生成json接口_基于python的Flask框架写json接口并且结合eolinker进行接口测试
- Android混淆编译Proguard
- 周立功USBCANFD_200U的Python调用
- python第三方库怎么下载安装_简谈下载安装Python第三方库的三种方法
- python教你如何把自己的微信变成机器人
- Java HTML导出PDF (二)
- 【办公基本软件】万彩办公大师教程丨PDF压缩工具
- 消愁计算机数字按键,明日之后2019最新钢琴谱数字编码顺序大全:纸短情长、起风了、往后余生[多图]...
- 微信h5隐藏导航栏和状态栏_导航栏未在SwiftUI中隐藏
- EV代码签名证书对可执行文件进行签名
- 【无标题】储能电池IEC62619认证 IEC62619测试什么内容
- 美国计算机硕博连读最快几年,美国硕博连读几年
- 【OA外勤签到】软件免费下载
热门文章
- java实现zip的压缩和解压(支持中文文件名)
- LoadRunner做性能测试 从设计到分析执行
- salt 基本组建之 grains,pillars(整理中)
- 【转载】Wireshark基本介绍和学习TCP三次握手
- 妨碍你成为CCIE的10个不良习惯
- 盛大文学推出“一人一书”计划,发布电子书战略
- spring cloud微服务分布式云架构 - Spring Cloud集成项目简介
- Javaweb学习笔记——(五)——————DOMXML目录
- 以Dapper、Zipkin和LightStep [x]PM为例阐述分布式跟踪的过去、现在和未来
- 如何高效的通过BP算法来训练CNN