Android 的上下文菜单类似于 PC 上的右键菜单。当为一个视图注册了上下文菜单之后,长按这个视图对象就会弹出一个浮动菜单,即上下文菜单。任何视图都可以注册上下文菜单,不过,最常见的是用于列表视图ListView的item。注意:Android 的上下文菜单不支持图标或快捷键。

下面是上下文的创建步骤:

1.在activity的onCreate(...)方法中为一个view注册上下文菜单
2.在onCreateContextMenuInfo(...)中生成上下文菜单。
3.在onContextItemSelected(...)中响应上下文菜单项

下面通过一个简单例子,练习一下其使用。

  1. public class MainActivity extends ListActivity {
  2. private static final int ITEM1 = Menu.FIRST;
  3. private static final int ITEM2 = Menu.FIRST+1;
  4. private static final int ITEM3 = Menu.FIRST+2;
  5. /** Called when the activity is first created. */
  6. @Override
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. showListView();
  10. //为 ListView 的所有 item 注册 ContextMenu
  11. registerForContextMenu(getListView());
  12. //这里的registerForContextMenu()也可以用下面的语句替代
  13. //getListView().setOnCreateContextMenuListener(this);
  14. }
  15. private void showListView(){
  16. String[] mString = new String[]{
  17. "路飞-Monkey D Luffy",
  18. "奈美-Nami",
  19. "卓洛-Zoro",
  20. "山治-Sanji",
  21. "尼可·罗宾-Ms. All Sunday",
  22. "乌索普-usoppu",
  23. "托尼托尼·乔巴-Tony Tony Chopper",
  24. };
  25. ArrayAdapter<String> mla = new ArrayAdapter<String>(MainActivity.this,
  26. R.layout.main, mString);
  27. MainActivity.this.setListAdapter(mla);
  28. }
  29. //上下文菜单,本例会通过长按条目激活上下文菜单
  30. @Override
  31. public void onCreateContextMenu(ContextMenu menu, View view,
  32. ContextMenuInfo menuInfo) {
  33. menu.setHeaderTitle("人物简介");
  34. //添加菜单项
  35. menu.add(0, ITEM1, 0, "特长");
  36. menu.add(0, ITEM2, 0, "战斗力");
  37. menu.add(0, ITEM3, 0, "经典语录");
  38. }
  39. //菜单单击响应
  40. @Override
  41. public boolean onContextItemSelected(MenuItem item){
  42. //获取当前被选择的菜单项的信息
  43. //AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
  44. //Log.i("braincol",String.valueOf(info.id));
  45. switch(item.getItemId()){
  46. case ITEM1:
  47. //在这里添加处理代码
  48. break;
  49. case ITEM2:
  50. //在这里添加处理代码
  51. break;
  52. case ITEM3:
  53. //在这里添加处理代码
  54. break;
  55. }
  56. return true;
  57. }
  58. }

运行程序,多次唤出上下文菜单,注意LogCat的输出,onCreateContextMenu每一次都被调用了。如果想要看看这几个方法是怎样顺序调用的,可以通过log打印信息来查看。

android 使用上下文菜单ContextMenu相关推荐

  1. (4.0.15.3)Android 的上下文菜单: ContextMenu的使用方法以及与OptionMenu的区别

    ContextMenu是Android的context menu上下文菜单,选择某项VIEW后长按menu键,就会显示出来.比如EditeText就可以通过长按来弹出拥有"cut" ...

  2. 【Android】上下文菜单ContextMenu的使用

    上下文菜单 又称长按菜单.当一个视图注册了上下文菜单时,执行一个在该对象上长按(2秒)的动作,将出现一个具有相关功能的浮动菜单. 类概述 扩展自Menu的上下文菜单提供了修改上下文菜单头(header ...

  3. Android进阶(二十八)上下文菜单ContextMenu使用案例

    上下文菜单ContextMenu使用案例 前言 回顾之前的应用程序,发现之前创建的选项菜单无法显示了.按照正常逻辑来说,左图中在"商品信息"一栏中应该存在选项菜单,用户可进行分享等 ...

  4. Android 的上下文菜单: Context Menu

    本文转载自: https://www.cnblogs.com/hibraincol/archive/2010/09/30/1839014.html 作者:hibraincol 转载请注明该声明. 概述 ...

  5. Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())

    概述: Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单.任何视图都可以注册上下文菜单,不过, ...

  6. 5.4 Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())

    Android 的上下文菜单: Context Menu,registerForContextMenu(getListView()) Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视 ...

  7. 学习之路(一)Android 的上下文菜单: Context Menu,registerForContextMenu(getListView());

    概述: Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单.任何视图都可以注册上下文菜单,不过, ...

  8. android 关闭上下文菜单,【Android笔记】ContextMenu上下文菜单

    ContextMenu上下文菜单 1.ContextMenu菜单的组成部分 标题及标题图标 菜单内容 菜单内容的点击响应事件 2.ContextMenu与OptionMenu的区别 OptionMen ...

  9. 上下文菜单ContextMenu

    Res目录下menu下创建listview_menu.xml <?xml version="1.0" encoding="utf-8"?> < ...

最新文章

  1. 专访图灵奖得主John Hopcroft:中国必须提升本科教育水平,才能在AI领域赶上美国
  2. mysql memory_MySQL MEMORY 引擎及性能比对
  3. bogofilter notes
  4. 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares
  5. win10环境下mysql8安装后Can‘‘t connect to MySQL server on localhost (10061)解决方法
  6. 20145227《网络对抗》后门原理与实践
  7. 理正深基坑弹性计算方法_理正深基坑软件7.0/理正岩土6.5/理正勘察9.0/理正工具箱7.0...
  8. supervise用法_supervise过去式和用法例句
  9. 光纤通道与以太网交换机之间有什么区别呢?
  10. 矩形波 matlab,Matlab的方波函数
  11. word加上尾注之后参考文献下面的横线去除
  12. 移动开发者的必知音视频基础知识
  13. php 指定大小缩略图片
  14. linux定时每隔多少天,Linux中Cron任务间隔执行:每隔几分钟/几小时/几天
  15. 第十四课:树莓派网络视频监控(mjpg-streamer)
  16. 05_01_拉钩教育课程管理系统之一:项目介绍
  17. 8个超好用的免费工具/软件/网站(一定有你要的)
  18. 【计算机网络】以太网供电PoE - Power over Ethernet
  19. 由数字、26个英文字母或者下划线组成的字符串:
  20. PDF.js使用心得

热门文章

  1. Java打印输出:8x8x
  2. 前端——如何用绝对定位(position:absolute)完美定位布局及其注意事项
  3. mac 服务器系统安装教程视频教程,Mac U盘安装windows7、8及8.1图文教程(最详细最全面教程)...
  4. 目标客户定位及宣传方向选择
  5. python-下载固定百度图片地址
  6. websocket的一些应用
  7. 英语对一个程序员来说有多重要?
  8. 腾讯2016实习生面试经验(已经拿到offer)
  9. 【桃花源记】 陶渊明
  10. 【python】字典常用方法