iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现类似于PC中的右键弹出菜单效果
  • 247
分享到

Android实现类似于PC中的右键弹出菜单效果

菜单弹出菜单Android 2022-06-06 09:06:12 247人浏览 独家记忆
摘要

 Android系统中的ContextMenu(上下文菜单)类似于PC中的右键弹出菜单,当一个视图注册到一个上下文菜单时,执行一个在该对象上的“长按”动作,将出现一个

 Android系统中的ContextMenu(上下文菜单)类似于PC中的右键弹出菜单,当一个视图注册到一个上下文菜单时,执行一个在该对象上的“长按”动作,将出现一个提供相关功能的浮动菜单。上下文菜单可以被注册到任何视图对象中,不过,最常见的是用于列表视图ListView的item,在按中列表项时,会转换其背景色而提示将呈现上下文菜单。 
注意:上下文菜单不支持图标和快捷键。
为了创建一个上下文菜单,你必须重写这个活动的上下文菜单回调函数:onCreateContextMenu() 和 onContextItemSelected()。在回调函数onCreateContextMenu()里,你可以通过使用一个add()方法来添加菜单项,或者通过扩充一个定义在XML中的菜单资源。然后,通过reGISterForContextMenu()为这个视图注册一个上下文菜单ContextMenu.  
下面我通过一个实例Demo来展示下ContextMenu的基本使用,通过手动添加Menu菜单和XML文件两种方式来配置Menu的选项。
1、该Demo的工程结构目录图如下:

2、res/layout目录下的main.xml布局文件源码如下:


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android" 
 android:orientation="vertical" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"> 
 <TextView 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:text="Hello,This is Andy's Blog!"/> 
 <ListView 
  android:id="@+id/lv" 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content"/> 
</LinearLayout> 

3、 res/menu目录下的 cmenu.xml 菜单选项文件源码如下:


<?xml version="1.0" encoding="utf-8"?> 
<menu 
 xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item android:id="@+id/add" android:title="增加"/> 
 <item android:id="@+id/update" android:title="更新"/> 
 <item android:id="@+id/delete" android:title="删除"/> 
</menu> 

4、com.andyidea.menudemo包下的 MenuActivity.java 源码如下:


package com.andyidea.menudemo; 
import java.util.ArrayList; 
import java.util.List; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.ContextMenu; 
import android.view.ContextMenu.ContextMenuInfo; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 
public class MenuActivity extends Activity { 
 ListView lv; 
 private ArrayAdapter<String> adapter; 
 private List<String> alist = new ArrayList<String>(); 
  
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
  lv = (ListView)findViewById(R.id.lv); 
  alist.add("第一"); 
  alist.add("第二"); 
  alist.add("第三"); 
  adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,alist); 
  lv.setAdapter(adapter); 
  //注册视图对象,即为ListView控件注册上下文菜单 
  registerForContextMenu(lv); 
 } 
  
 @Override 
 public void onCreateContextMenu(ContextMenu menu, View v, 
   ContextMenuInfo menuInfo) { 
  //1.通过手动添加来配置上下文菜单选项 
  //menu.add(0, 1, 0, "修改"); 
  //menu.add(0, 2, 0, "删除"); 
  //2.通过xml文件来配置上下文菜单选项 
  MenuInflater mInflater = getMenuInflater(); 
  mInflater.inflate(R.menu.cmenu, menu); 
  super.onCreateContextMenu(menu, v, menuInfo); 
 } 
  
 @Override 
 public boolean onContextItemSelected(MenuItem item) { 
  switch(item.getItemId()){ 
  case 1: 
   Toast.makeText(this, "你选择了手动修改", Toast.LENGTH_SHORT).show(); 
   break; 
  case 2: 
   Toast.makeText(this, "你选择了手动删除", Toast.LENGTH_SHORT).show(); 
   break; 
  case R.id.add: 
   Toast.makeText(this, "你选择了XML增加", Toast.LENGTH_SHORT).show(); 
   break; 
  case R.id.update: 
   Toast.makeText(this, "你选择了XML更新", Toast.LENGTH_SHORT).show(); 
   break; 
  case R.id.delete: 
   Toast.makeText(this, "你选择了XML删除", Toast.LENGTH_SHORT).show(); 
   break; 
  } 
  return super.onContextItemSelected(item); 
 } 
  
 @Override 
 public void onContextMenuClosed(Menu menu) { 
  // TODO Auto-generated method stub 
  super.onContextMenuClosed(menu); 
 } 
} 

5、Demo运行后的运行截图如下:

希望本文所述对大家学习Android软件编程有所帮助。

您可能感兴趣的文章:android popwindow实现左侧弹出菜单层及PopupWindow主要方法介绍Android ListView长按弹出菜单二种实现方式示例Android之用PopupWindow实现弹出菜单的方法详解android自定义popupwindow仿微信右上角弹出菜单效果Android PopupWindow实现右侧、左侧和底部弹出菜单简单实现Android弹出菜单效果Android仿QQ滑动弹出菜单标记已读、未读消息Android使用Activity实现从底部弹出菜单或窗口的方法Android中微信小程序开发之弹出菜单Android实现底部弹出按钮菜单升级版


--结束END--

本文标题: Android实现类似于PC中的右键弹出菜单效果

本文链接: https://www.lsjlt.com/news/26097.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue实现右键弹出菜单
    在最近工作中,有一个需求,需要做一个表格,并且对该表格右键弹出菜单支持增删改,这里做下总结,功能截图如下: 首先定义菜单结构 <!-- 菜单 --> <div c...
    99+
    2024-04-02
  • Android实现微博菜单弹出效果
    先上Android仿微博菜单弹出效果图,这个截图不是很流畅,大家可以下载apk试一下。 说一下实现思路: 截取当前窗口,对图片做高斯模糊处理,将处理后的图片做popupwindow的背景图片; 2、创建popupwindow,完成...
    99+
    2023-05-30
    android 菜单弹出
  • Android实现毛玻璃效果弹出菜单动画
    本文实例为大家分享了Android实现毛玻璃效果弹出菜单动画的具体代码,供大家参考,具体内容如下 仿ios上屏幕下方向上滑出来的一个模糊菜单,效果如下 原理很简单,页面上原来有...
    99+
    2022-11-13
    Android毛玻璃效果 Android毛玻璃菜单 Android弹出菜单
  • DirectUI实现右键弹出菜单的代码怎么写
    要实现右键弹出菜单,可以按照以下步骤进行操作: 定义一个菜单控件,例如ContextMenu。 在需要弹出菜单的控件上,添加鼠标右...
    99+
    2023-10-24
    DirectUI
  • Android PopupMenu弹出菜单的实现
    Android PopupMenu弹出菜单的实现(1)布局文件:用于弹出菜单的处罚button:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and...
    99+
    2023-05-30
    android popupmenu roi
  • CSS中怎么实现二级弹出菜单效果
    这篇文章将为大家详细讲解有关CSS中怎么实现二级弹出菜单效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体代码如下:<!DOCTYPE ...
    99+
    2024-04-02
  • React实现pc端的弹出框效果
    本文实例为大家分享了React实现pc端弹出框效果的具体代码,供大家参考,具体内容如下 最近学习react碰见了一个小坑 不知道为什么 我在做一个弹出框的小demo 很简单的一个小...
    99+
    2024-04-02
  • vue2.0中怎么利用contextmenu实现右键弹出菜单功能
    vue2.0中怎么利用contextmenu实现右键弹出菜单功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.事情对象<!DOCTY...
    99+
    2024-04-02
  • Windows系统中对弹出菜单、下拉菜单、右键菜单截图的方法
    通过Windows 自带的截图工具或者QQ截图等其他截图工具,很多同学无法对弹出菜单、下拉菜单、鼠标右键菜单等一些活动的菜单进行截图,当进行截图时这些菜单总是消失。其实有一个小技巧可以让你很好的对这些菜单进行截图。 Wi...
    99+
    2023-06-10
    Windows 弹出菜单截图 下拉菜单截图 右键菜单截图 右键 菜单 下拉菜单 系统
  • Android如何实现仿网易严选底部弹出菜单效果
    这篇文章将为大家详细讲解有关Android如何实现仿网易严选底部弹出菜单效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先展示效果图如下:是不是还可以呢,由于代码量不多却注释详细,所以先贴出代码再一一...
    99+
    2023-05-30
    android
  • 怎么使用contextMenu插件实现Bootstrap table弹出右键菜单
    这篇文章给大家分享的是有关怎么使用contextMenu插件实现Bootstrap table弹出右键菜单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码(test.html)...
    99+
    2024-04-02
  • 基于Android实现可滚动的环形菜单效果
    效果 首先看一下实现的效果: 可以看出,环形菜单的实现有点类似于滚轮效果,滚轮效果比较常见,比如在设置时间的时候就经常会用到滚轮的效果。那么其实通过环形菜单的表现可以将其看作是一个...
    99+
    2024-04-02
  • 如何实现jQuery EasyUI右键菜单变灰不可用效果
    本篇文章给大家分享的是有关如何实现jQuery EasyUI右键菜单变灰不可用效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用过Easy...
    99+
    2024-04-02
  • 如何使用android实现左右侧滑菜单效果的方法
    这篇文章主要介绍了如何使用android实现左右侧滑菜单效果的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在android开发中,左右侧滑菜单的开发已成为我们现在开发的...
    99+
    2023-05-30
    android
  • Vue自定义指令实现点击右键弹出菜单示例详解
    目录一、实现思路1.使用contextmenu事件2.点击菜单之外的任意地方关闭菜单3.菜单置于图层的最顶层二、源代码一、实现思路 1.使用contextmenu事件 该需求需要拦截...
    99+
    2023-01-11
    Vue自定义指令右键弹出菜单 Vue自定义指令 点击右键弹出菜单
  • Android卫星菜单效果的实现方法
    Android小白第一次写博客,心情无比激动。下面给大家展示一下卫星菜单的实现。1.简单介绍卫星菜单在应用程序中,有很多展示菜单的方式,但其功能都是大同小异,这样一来,菜单的美观以及展示方式就显的尤为重要,卫星菜单就是很不错的一种。下面是本...
    99+
    2023-05-31
    android 卫星菜单 roi
  • 计算机中鼠标右键无法弹出菜单的解决方法
    小编给大家分享一下计算机中鼠标右键无法弹出菜单的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!鼠标右键无法弹出菜单的解决方法:1、按【win+r】打开运行,输入regedit,点击确定;2、在打开的注册表编辑器中定...
    99+
    2023-06-13
  • Android中DrawerLayout如何实现侧滑菜单效果
    这篇文章主要为大家展示了“Android中DrawerLayout如何实现侧滑菜单效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android中DrawerLayout如何实现侧滑菜单效果”...
    99+
    2023-05-30
    drawerlayout android
  • 如何实现基于Ajax+div的“左边菜单、右边内容”页面效果
    小编给大家分享一下如何实现基于Ajax+div的“左边菜单、右边内容”页面效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果演示:①默认页面(index.jsp):②:点击左侧 用户管...
    99+
    2024-04-02
  • 微信小程序怎么实现菜单弹出的阻尼动画效果
    本篇内容主要讲解“微信小程序怎么实现菜单弹出的阻尼动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序怎么实现菜单弹出的阻尼动画效果”吧!实现代码结构如下:新建组件menu:menu...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作