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都被注册到这个上下文菜单。
分享到:
相关推荐
jQuery Context Menu - jQuery上下文菜单插件
vue-context-menu vue上下文菜单组件演示:https://vmaimone.github.io/vue-context-menu示例用法
该模块为您提供了一个不错的可扩展上下文菜单,其中包含拼写检查以及诸如文本的Cut / Copy / Paste ,图像的Save Image图像和Copy Link的Copy Link项目。 它还在开发时添加了“ Inspect Element菜单项,以像在...
添加上下文菜单HTML元素的简单通用上下文菜单。 安装# install with npmnpm i add-context-menu快速开始# import add-context-menuimport ContextMenu from ' add-context-menu 'import ContextMenuItem from ' add-...
这是一个 jQuery 的上下文菜单插件,很好看 标签:jquery
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_...
Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...
d3-上下文菜单这是 d3.js 的插件,允许您在可视化中轻松使用上下文菜单。 它 100% 基于 d3 并以“d3 方式”完成,因此您无需担心包含其他框架。 它被编写为非常轻巧且可定制。 你可以在这里看到它的实际效果:使用 ...
vue-lil-context-menu Vue的灵活上下文菜单组件。 向其传递任何您喜欢的菜单模板; 它甚至不必是菜单。 始终不显示vue-lil-context-menu Vue的灵活上下文菜单组件。 向其传递任何您喜欢的菜单模板; 它甚至不必是...
文档中包括Android实现上下文菜单、下拉菜单、选项菜单代码以及截图,亲测可用!!!
android中上下文菜单与上下文操作模式的简介与使用
vue-简单上下文菜单为 Vue 构建的简单上下文菜单组件。 适用于左键和右键单击。 没有什么太花哨的,只是有效且易于使用。演示安装 # npmnpm i vue-simple-context-menu# yarnyarn add vue-simple-context-menu或者您...
Clappr上下文菜单插件演示版目录 特征默认动作: 复制Clappr所在的站点的URL; 复制URL和视频的当前时间; 启用/禁用循环状态; 默认信息: Clappr版本; 支持添加新的自定义操作; 支持添加自定义样式; 用法您可以...
以鼠标操作为前提的UI,例如窗口,上下文菜单,嵌套菜单vue菜单简介最近的Web技术专注于移动环境。 以鼠标操作为前提的UI(例如窗口,上下文菜单,嵌套菜单等)已不再是主流。 但是,层次结构(上下文菜单和嵌套菜单...
智能家居系统应用
React本机上下文菜单视图 使用React Native的本地上下文菜单功能。 在iOS 13+上,它使用UIMenu功能,在Android上,它使用PopUpMenu 。 在iOS 12及更低版本上,没有任何React。 您可能希望执行Platform.OS === 'ios'...
与许多类似的库不同,react-right-click-menu仅提供了一个上下文环境,在此环境中,消费者为应该触发菜单的元素和事件发生时应呈现的组件提供了实际的DOM节点(引用)。 当触发上下文菜单时,这使集成自己的UI库和...
语境 vue-context为Vue提供了一个简单而灵活的上下文菜单。 它是为标准标记设置的样式,但是可以使用任何菜单模板。 该菜单是轻量级的,其唯一依赖项是vue-clickaway 。 菜单具有一些基本样式,但是可以用您自己的...
Android-实验课09-上下文菜单-对话框练习.rar
Android-Context-Menu.Android.zip,你可以很容易地添加令人敬畏的动画上下文菜单到你的应用程序。,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有...