zoukankan      html  css  js  c++  java
  • 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 }

  • 相关阅读:
    Java ClassLoader
    Java Hashcode
    Java 装箱 拆箱
    Java 深拷贝,浅拷贝
    Java IO流
    JVM内存模型
    C语言中的__FILE__、__LINE__和#line
    OpenMP和MPI的区别
    visual studio代码备份精减
    MVVM设计模式在WPF中的应用
  • 原文地址:https://www.cnblogs.com/my334420/p/6785787.html
Copyright © 2011-2022 走看看