Android Menu 之 ContextMenu 详解
ContextMenu是当用户长按某个控件时弹出在屏幕中央的菜单。这样的话,每个控件都可以拥有自己独特的菜单。就好比Windows里系统里我们右键不同的东西会有不同的菜单一样。
首先借个图展示一下:
然后开始想问题:
1、怎么构建ContextMenu?
2、Activity怎么知道我要长按哪个控件弹出ContextMenu?
3、如何响应点击?
1、怎么构建ContextMenu
重写onCreateContextMenu就可以了。看代码:
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){ // 可以通过识别View来为不同的控件添加不同的ContextMenu if(v.getId() == R.id.begin){ MenuInflater flater = getMenuInflater(); flater.inflate(R.menu.context_menu_1, menu); menu.setHeaderTitle("contextView sample").setHeaderIcon(R.drawable.img_bt_search); } }
当然也可以不通过xml文件,而直接用代码。方法可参见上一篇博文。
2、Activity怎么知道我要长按哪个控件弹出ContextMenu
这需要我们做一个注册的动作。在Activity的OnCreate方法里写上:
registerForContextMenu(btnBegin);
参数当然就是你要弹出ContextMenu的那个控件。
3、如何响应点击?
重写onContextItemSelected方法就可以了。看代码:
@Override public boolean onContextItemSelected (MenuItem item){ Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show(); return true; }
另外,ContextMenu里的菜单项不能有图标,但是可以为它的Header设置图标。如代码里写的那样:
menu.setHeaderTitle("contextView sample").setHeaderIcon(R.drawable.img_bt_search);
Android Menu 之 ContextMenu 详解相关推荐
- Android Menu 之 optionsMenu 详解
optionsMenu就是用户在按下手机键盘上的Menu键时,Activity下方弹出的菜单.借个图展示一下: 接下来,本文的主要内容有: 1. 如何建立菜单 2. 如何响应菜单上的点击动作 3. ...
- Android 系统(199)---Android事件分发机制详解
Android事件分发机制详解 前言 Android事件分发机制是Android开发者必须了解的基础 网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全.思路不清晰.无源码分析. ...
- Android 吸入动画效果详解(仿mac退出效果)
转载自:http://m.blog.csdn.net/blog/leehong2005/9127095 [转]Android 吸入动画效果详解 1,背景 吸入(Inhale)效果,最初我是在iOS上面 ...
- android jar 包 意见反馈功能,android重点jar包详解.docx
android重点jar包详解 深入理解View(一):从setContentView谈起 我们都知道?MVC,在Android中,这个?V?即指View,那我们今天就来探探View的究竟.在onCr ...
- Android应用坐标系统全面详解
Android应用坐标系统全面详解 原文链接:CSDN@工匠若水,http://blog.csdn.net/yanbober/article/details/50419117 1. 背景 去年有很多人 ...
- Android NFC开发实战详解
Android NFC开发实战详解 Android开发实战详解NFC国内第一本AndroidNFC开发书籍带你开启AndroidNFC开发的神秘之旅大综合案例帮助读者快速进入实战角色:WiFi快速连接 ...
- Android Gradle 自定义Task详解二:进阶
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78523958 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...
- Android Gradle 自定义Task 详解
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76408024 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...
- android ------- 开发者的 RxJava 详解
在正文开始之前的最后,放上 GitHub 链接和引入依赖的 gradle 代码: Github: https://github.com/ReactiveX/RxJava https://githu ...
最新文章
- matlab 多个表数据相加,Excel合并计算完成多表格数据汇总求和
- 改造我们的学习:有钱不会花,抱着金库抓瞎
- @autowired注解原理_相见恨晚,一个架构师也不会用的Lombok注解
- 开发人员MySQL调优-理论篇
- python中pyecharts_小白学Python(8)——pyecharts 入门
- 华为回应“停止社招”;iPhone XS 取消美颜; iCloud 大面积瘫痪 | 极客头条
- Nginx启动报[10013]错误
- SetWindowLong 除去窗体标题栏
- iMovie for Mac如何创建分屏效果?
- 海洋工作室——网站建设专家:人生3万天 转载
- 地理坐标系与投影坐标系
- 到底什么是前后端分离
- iSCSI引入FC/SAN
- netty 错误 #[IllegalReferenceCountException: refCnt: 0, decrement: 1]
- html5 lang属性都有哪些语言,HTML5中的lang属性,zh
- 线上支付,出款和收款
- 什么是数字化?企业该如何做数字化?
- 无法创建新的分区,也找不到现有的分区
- 既然有MySQL了,为什么还要有MongoDB?
- 文章阅读总结:OpenAI-Codex