Android攻城狮认识ContextMenu
Posted 张兮兮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
以上是关于Android攻城狮认识ContextMenu的主要内容,如果未能解决你的问题,请参考以下文章