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都被注册到这个上下文菜单。
分享到:
相关推荐
Vue Context Menu是一个专门为Vue.js设计的上下文菜单组件,能够帮助开发者轻松创建具有上下文感知功能的菜单。 `vue-context-menu` 是这个组件的名称,由Vmaimone开发并维护。通过提供的链接...
jQuery Context Menu是一款强大的jQuery插件,它允许开发者轻松地为网页元素添加自定义的右键上下文菜单。这款插件提供了丰富的定制选项,包括菜单项、样式、事件处理等,使得用户交互更加友好且功能多样。 一、...
在了解如何使用Vue实现自定义上下文菜单(Context-Menu)之前,让我们先理解一下上下文菜单的基本概念。上下文菜单是用户对页面元素执行右键操作时弹出的菜单,它允许用户快捷地执行一些与当前元素相关的操作。在Web...
该模块为您提供了一个不错的可扩展上下文菜单,其中包含拼写检查以及诸如文本的Cut / Copy / Paste ,图像的Save Image图像和Copy Link的Copy Link项目。 它还在开发时添加了“ Inspect Element菜单项,以像在...
Android 实现上下文菜单、下拉菜单、选项菜单代码详解 Android 中的菜单系统是一个非常重要的组件,它提供了多种方式来帮助用户与应用程序进行交互。在本文档中,我们将详细介绍如何实现上下文菜单、下拉菜单和选项...
添加上下文菜单HTML元素的简单通用上下文菜单。 安装# install with npmnpm i add-context-menu快速开始# import add-context-menuimport ContextMenu from ' add-context-menu 'import ContextMenuItem from ' add-...
这是一个 jQuery 的上下文菜单插件,很好看 标签:jquery
在Android应用开发中,上下文菜单(Context Menu)和上下文操作模式(Contextual Action Mode)是两种常见的用户交互设计,它们提供了在特定情境下对数据进行操作的界面。这两种设计模式在处理列表、网格或其他可选元素...
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_...
【Context-Menu.Android源码】是一个专门为Android平台设计的开源项目,主要目的是提供一个自定义上下文菜单(Context Menu)的实现。在Android系统中,上下文菜单通常用于响应长按事件,显示与选定项相关的操作选项...
在Android应用开发中,上下文菜单(Context Menu)、选项菜单(OptionsMenu)和子菜单(Submenu)是三种重要的交互方式,用于提供用户与应用界面的多种操作选项。它们各自有不同的应用场景和设计规范,对于提升用户体验至...
d3-上下文菜单这是 d3.js 的插件,允许您在可视化中轻松使用上下文菜单。 它 100% 基于 d3 并以“d3 方式”完成,因此您无需担心包含其他框架。 它被编写为非常轻巧且可定制。 你可以在这里看到它的实际效果:使用 ...
vue-lil-context-menu Vue的灵活上下文菜单组件。 向其传递任何您喜欢的菜单模板; 它甚至不必是菜单。 始终不显示vue-lil-context-menu Vue的灵活上下文菜单组件。 向其传递任何您喜欢的菜单模板; 它甚至不必是...
总的来说,`Yalantis/Context-Menu.Android`为Android开发者提供了一个强大且易用的工具,用于创建具有视觉吸引力的上下文菜单。通过利用这个库,你可以提升应用的用户体验,使用户在享受动画效果的同时,更便捷地...
Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...
以鼠标操作为前提的UI,例如窗口,上下文菜单,嵌套菜单vue菜单简介最近的Web技术专注于移动环境。 以鼠标操作为前提的UI(例如窗口,上下文菜单,嵌套菜单等)已不再是主流。 但是,层次结构(上下文菜单和嵌套菜单...
vue-简单上下文菜单为 Vue 构建的简单上下文菜单组件。 适用于左键和右键单击。 没有什么太花哨的,只是有效且易于使用。演示安装 # npmnpm i vue-simple-context-menu# yarnyarn add vue-simple-context-menu或者您...
在Android开发中,上下文菜单(Context Menu)是一种常见的交互元素,它允许用户在长按某个视图或项时出现一个包含相关操作的弹出菜单。上下文菜单通常用于提供与特定视图或数据相关的动作选项,而不是全局的操作。在...
Clappr上下文菜单插件演示版目录 特征默认动作: 复制Clappr所在的站点的URL; 复制URL和视频的当前时间; 启用/禁用循环状态; 默认信息: Clappr版本; 支持添加新的自定义操作; 支持添加自定义样式; 用法您可以...
智能家居系统应用