原文转载自:http://jlins.iteye.com/blog/560891
上下文菜单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都被注册到这个上下文菜单。
分享到:
相关推荐
智能家居系统应用
jQuery Context Menu - jQuery上下文菜单插件
为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu (ContextMenu menu, View v,...
为您提供Disable Context Menu Items 禁用上下文菜单项下载,Disable Context Menu Items是一款简单实用的上下文菜单管理工具软件,用户能够通过Disable Context Menu Items来限制键盘快捷方式,界面简洁直观,操作...
电子上下文菜单应用程序的上下文菜单 Electron没有内置的上下文菜单。 您应该自己处理。 但这既繁琐又难于正确。 该模块为您提供了一个不错的可扩展上下文菜单,其中包含拼写检查以及诸如文本的Cut / Copy / Paste ...
添加上下文菜单HTML元素的简单通用上下文菜单。 安装# install with npmnpm i add-context-menu快速开始# import add-context-menuimport ContextMenu from ' add-context-menu 'import ContextMenuItem from ' add-...
d3-上下文菜单这是 d3.js 的插件,允许您在可视化中轻松使用上下文菜单。 它 100% 基于 d3 并以“d3 方式”完成,因此您无需担心包含其他框架。 它被编写为非常轻巧且可定制。 你可以在这里看到它的实际效果:使用 ...
语境 vue-context为Vue提供了一个简单而灵活的上下文菜单。 它是为标准标记设置的样式,但是可以使用任何菜单模板。 该菜单是轻量级的,其唯一依赖项是vue-clickaway 。 菜单具有一些基本样式,但是可以用您自己的...
sublime-text-2-context-menu-windows, 在你的Windows 上下文菜单中,如何获取 sublime text 2/3 sublime-text-2-context-menu-windows如何在 Windows 上下文菜单中获取 sublime text 2.将 sublime_add_to_context_...
Bootstrap Context Menu是一款非常实用的基于Bootstrap的jQuery右键上下文菜单插件。该右键菜单插件可以在多种元素上触发,也可以配合Font Awesome字体图标一起使用,非常的方便。
这是一个 jQuery 的上下文菜单插件,很好看 标签:jquery
vue-context-menu vue上下文菜单组件演示:https://vmaimone.github.io/vue-context-menu示例用法
jQuery Context Menu多级展开的菜单插件,带图标的上下文菜单,有点仿Windows右键菜单的意思,在网页上使用这种菜单的话,也是很有个性的哦。
当触发上下文菜单时,这使集成自己的UI库和显示自己的UI组件变得容易。 话虽这么说,react-right-click-menu不会保留任何内容或样式,也不会安装任何其他依赖项。安装NPM npm我@ agjs / react-right-click-menu纱...
vue-简单上下文菜单为 Vue 构建的简单上下文菜单组件。 适用于左键和右键单击。 没有什么太花哨的,只是有效且易于使用。演示安装 # npmnpm i vue-simple-context-menu# yarnyarn add vue-simple-context-menu或者您...
通过上下文菜单在任何搜索引擎中搜索选定的文本。 通过上下文菜单在任何搜索引擎中搜索选定的文本:1.在页面上选择文本2.单击鼠标右键3.选择搜索引擎(例如IMDb或Wikipedia)4.享受 支持语言:English
它包括一排用于复制、粘贴和删除等基本操作的图标,但在“显示更多选项”按钮后面隐藏了一些您可能想要的功能,这意味着每次我们需要按下一个额外的选项来查看所有上下文菜单选项.我们将简要评估 Microsoft 添加到 ...
使用模型文件 custom_context_menu_blocks.mdl 中的所有模块自定义 Simulink 上下文菜单。 这些块可通过上下文菜单访问:添加自定义块/块列表。 所选块将添加到启动上下文菜单的鼠标单击位置。 请随时修改 custom_...
以鼠标操作为前提的UI,例如窗口,上下文菜单,嵌套菜单vue菜单简介最近的Web技术专注于移动环境。 以鼠标操作为前提的UI(例如窗口,上下文菜单,嵌套菜单等)已不再是主流。 但是,层次结构(上下文菜单和嵌套菜单...
React本机上下文菜单视图 使用React Native的本地上下文菜单功能。 在iOS 13+上,它使用UIMenu功能,在Android上,它使用PopUpMenu 。 在iOS 12及更低版本上,没有任何React。 您可能希望执行Platform.OS === 'ios'...