Android攻城狮认识ContextMenu
什么是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相关推荐
- 写给即将/正在找工作的Android攻城狮
写给即将/正在找工作的Android攻城狮 版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 这段时间从北上广深杭不断传来一两个月找不到工作的消息,我一 ...
- Android攻城狮OptionsMenu
Android的菜单一共有三种: OptionsMenu 选择菜单 ContextMenu 上下文菜单 SubMenu 子菜单创建选项菜单: 在 Activity 里面重写 onCreateOptio ...
- Android攻城狮ListView
适配器: 数据适配器:把复杂的数据填充在指定的视图界面上ArrayAdapter 数组适配器 用于绑定格式单一的数据 数据源:可以是集合或数组 SimpleAdapter 简单适配器:用于绑定格式复杂 ...
- Android攻城狮Gallery和ImageSwitcher制作图片浏览器
使用Gallery 和 ImageSwitcher 制作图片浏览器 Gallery介绍 我们有时候在手机上或者PC上看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据 ...
- Android攻城狮GestureDetector和GestureOverlayView
手势识别 可以通过以下两种方式实现: 1. 使用GestureDetector 2. 使用GestureOverlayView(属于线程的控件)手势交互过程(原理): 1. 触屏一刹那,触发 Moti ...
- Android攻城狮fragment
1 //1,fragment静态加载:MainActivity MainActivty1_2 Myfragment1 2 //2,fragment动态加载 :MainActivity Myfragme ...
- Android攻城狮ScrollView
ScrollView 滚动视图 滚动视图是指当前拥有很多内容,屏幕显示不完整时,需要通过滚动来显示完整的视图. ----------------------------- ScrollBar分两种: ...
- Android攻城狮ViewFlipper
使用ViewFlipper实现屏幕切换动画效果. ViewFlipper和ViewPager一样,都是Android自带的一个多页面管理控件,不同的是ViewPager是手动切换页面,而ViewFli ...
- Android攻城狮数据存储之SharedPreferences
Android的四种数据存储方式: 1. SharedPreferences 2. SQLite 3. Content Provider 4. File --------------------- S ...
最新文章
- Samtools(CentOS Linux)安装及常用命令详解
- 《javascript设计模式》笔记之第十章 和 第十一章:门面模式和适配器模式
- Vue中使用Openlayers加载Geoserver发布的TileWMS
- 发送图片微博_微博引流之(实时号养成内幕解析)!
- linux判断cpu是否过载,Linux CPU 如何判断忙
- 技术干货丨隐私保护下的迁移算法
- git am 部分发生冲突的处理
- 微信小程序支付异常:requestPayment:fail no permission
- maven的常用指令
- 《UNIX网络编程 卷1:套接字联网API(第3版)》——2.13 常见因特网应用的协议使用...
- 国家电网考试计算机基础知识,大学计算机基础(国家电网考试整理)
- 房产中介管理系统网站完整源码
- 2010年中考英语写作高分指导
- JAVA 调用摄像头
- 计算机网络 自顶向下方法 (一) 笔记 总结 第一章 概述
- 浅谈提高团队成员的工作积极性
- 设置等级对照表的表格
- linux服务器u盘启动项检测不到,u盘启动大师下载u盘安装kali linux 检测不到cd rom...
- mysql需要费用_mysql到底是不是免费的
- Windows nginx 操作和配置