什么是ContextMenu?
例如Windows系统的右键菜单,在Android中长按某个文件夹,会跳出菜单,这个菜单就是ContextMenu。
ContextMenu与OptionMenu的区别
1. OptionMenu对应的是activity,一个activity只能拥有一个选项菜单;
2. ContextMenu对应的是View,每一个View都可以设置上下文菜单;
3. 一般情况下ContextMenu常用于ListView或者GridView。ContextMenu创建方法
首先给View 注册上下文菜单registerForContextMenu()
添加上下文菜单内容 onCreateContextMenu()
-- 可以通过代码动态添加;
-- 可以加载xml文件中的菜单项。
设置菜单点击后的响应事件 onContextItemSelected()。
 1 public class MainActivity extends ActionBarActivity {
 2
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.fragment_main);
 7         showListView();
 8
 9     }
10
11     // 设置showListView显示内容
12     private void showListView() {
13         ListView listView = (ListView) findViewById(R.id.listView1);
14         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
15                 android.R.layout.simple_list_item_1, getData());
16         listView.setAdapter(adapter);
17         this.registerForContextMenu(listView);
18
19     }
20
21     @Override
22     public void onCreateContextMenu(ContextMenu menu, View v,
23             ContextMenuInfo menuInfo) {
24         // TODO Auto-generated method stub
25         super.onCreateContextMenu(menu, v, menuInfo);
26         // 设置meun显示内容
27         menu.setHeaderTitle("文件操作");
28         menu.setHeaderIcon(R.drawable.ic_launcher);
29         // 方法一 代码加载
30         // menu.add(1, 1, 1, "复制");
31         // menu.add(1, 2, 1, "粘贴");
32         // menu.add(1, 3, 1, "剪切");
33         // menu.add(1, 4, 1, "重命名");
34         // 方法二, xml加载:
35         MenuInflater inflater = getMenuInflater();
36         inflater.inflate(R.menu.main, menu);
37
38     }
39
40     // 监听事件:
41     @Override
42     public boolean onContextItemSelected(MenuItem item) {
43         // TODO Auto-generated method stub
44
45         switch (item.getItemId()) {
46         // 方法一 代码加载:
47         case 1:
48             Toast.makeText(MainActivity.this, "点击复制", 0).show();
49             break;
50
51         case 2:
52             Toast.makeText(MainActivity.this, "点击粘贴", 0).show();
53             break;
54         case 3:
55             Toast.makeText(MainActivity.this, "点击剪切", 0).show();
56             break;
57
58         case 4:
59             Toast.makeText(MainActivity.this, "点击重命名", 0).show();
60             break;
61         // 方法二,xml加载
62         case R.id.context_menu_item1:
63             Toast.makeText(MainActivity.this, "点击复制", 0).show();
64             break;
65         case R.id.context_menu_item2:
66             Toast.makeText(MainActivity.this, "点击粘贴", 0).show();
67             break;
68         case R.id.context_menu_item3:
69             Toast.makeText(MainActivity.this, "点击剪切", 0).show();
70             break;
71         case R.id.context_menu_item4:
72             Toast.makeText(MainActivity.this, "点击重命名", 0).show();
73             break;
74
75         }
76         return super.onContextItemSelected(item);
77     }
78
79     // 构造listview显示数据
80     private ArrayList<String> getData() {
81
82         ArrayList<String> list = new ArrayList<String>();
83         for (int i = 1; i < 5; i++) {
84             list.add("文件" + i);
85         }
86         return list;
87     }
88 }

转载于:https://www.cnblogs.com/my334420/p/6785787.html

Android攻城狮认识ContextMenu相关推荐

  1. 写给即将/正在找工作的Android攻城狮

    写给即将/正在找工作的Android攻城狮 版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 这段时间从北上广深杭不断传来一两个月找不到工作的消息,我一 ...

  2. Android攻城狮OptionsMenu

    Android的菜单一共有三种: OptionsMenu 选择菜单 ContextMenu 上下文菜单 SubMenu 子菜单创建选项菜单: 在 Activity 里面重写 onCreateOptio ...

  3. Android攻城狮ListView

    适配器: 数据适配器:把复杂的数据填充在指定的视图界面上ArrayAdapter 数组适配器 用于绑定格式单一的数据 数据源:可以是集合或数组 SimpleAdapter 简单适配器:用于绑定格式复杂 ...

  4. Android攻城狮Gallery和ImageSwitcher制作图片浏览器

    使用Gallery 和 ImageSwitcher 制作图片浏览器 Gallery介绍 我们有时候在手机上或者PC上看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据 ...

  5. Android攻城狮GestureDetector和GestureOverlayView

    手势识别 可以通过以下两种方式实现: 1. 使用GestureDetector 2. 使用GestureOverlayView(属于线程的控件)手势交互过程(原理): 1. 触屏一刹那,触发 Moti ...

  6. Android攻城狮fragment

    1 //1,fragment静态加载:MainActivity MainActivty1_2 Myfragment1 2 //2,fragment动态加载 :MainActivity Myfragme ...

  7. Android攻城狮ScrollView

    ScrollView 滚动视图 滚动视图是指当前拥有很多内容,屏幕显示不完整时,需要通过滚动来显示完整的视图. ----------------------------- ScrollBar分两种: ...

  8. Android攻城狮ViewFlipper

    使用ViewFlipper实现屏幕切换动画效果. ViewFlipper和ViewPager一样,都是Android自带的一个多页面管理控件,不同的是ViewPager是手动切换页面,而ViewFli ...

  9. Android攻城狮数据存储之SharedPreferences

    Android的四种数据存储方式: 1. SharedPreferences 2. SQLite 3. Content Provider 4. File --------------------- S ...

最新文章

  1. Samtools(CentOS Linux)安装及常用命令详解
  2. 《javascript设计模式》笔记之第十章 和 第十一章:门面模式和适配器模式
  3. Vue中使用Openlayers加载Geoserver发布的TileWMS
  4. 发送图片微博_微博引流之(实时号养成内幕解析)!
  5. linux判断cpu是否过载,Linux CPU 如何判断忙
  6. 技术干货丨隐私保护下的迁移算法
  7. git am 部分发生冲突的处理
  8. 微信小程序支付异常:requestPayment:fail no permission
  9. maven的常用指令
  10. 《UNIX网络编程 卷1:套接字联网API(第3版)》——2.13 常见因特网应用的协议使用...
  11. 国家电网考试计算机基础知识,大学计算机基础(国家电网考试整理)
  12. 房产中介管理系统网站完整源码
  13. 2010年中考英语写作高分指导
  14. JAVA 调用摄像头
  15. 计算机网络 自顶向下方法 (一) 笔记 总结 第一章 概述
  16. 浅谈提高团队成员的工作积极性
  17. 设置等级对照表的表格
  18. linux服务器u盘启动项检测不到,u盘启动大师下载u盘安装kali linux 检测不到cd rom...
  19. mysql需要费用_mysql到底是不是免费的
  20. Windows nginx 操作和配置

热门文章

  1. 弘辽科技:淘宝标签商家是什么意思?注意哪些事项?
  2. mts如何转换为mp4
  3. IT从业人员面试经典70问答
  4. MTK机器原始OTA更新方法
  5. HUAWEI华为MateBook X Pro 2020 i7 16GB+512GB (MACHC-WAE9LP)原装出厂系统恢复原厂系统(送解压密码)
  6. 动手画混淆矩阵(Confusion Matrix)(含代码)
  7. Springboot启动流程详解
  8. /项目3-分数类中的运算符重载
  9. 2002 计算球体体积
  10. Win10磁盘管理器:轻松和安全地调整Win10的分区大小