zoukankan      html  css  js  c++  java
  • Android 菜单 之 上下文菜单ContextMenu

    所谓上下文菜单就是当我们长按某一个文件时弹出的菜单

    操作这个菜单我们要重写onCreateContextMenu()方法

    如上一篇文章一样,对于这个菜单中选型的操作也有动态添加和xml文件添加两种方法

    首先是动态添加

     @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
            menu.setHeaderTitle("文件操作"); //上下文菜单的标题
            menu.setHeaderIcon(R.mipmap.ic_launcher);//图标
            menu.add(1,1,1,"复制");
            menu.add(1,2,1,"粘贴");
            menu.add(1,3,1,"剪切");
            menu.add(1,4,1,"重命名");
    
    
        }
    

     然后是xml文件添加

       @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
            menu.setHeaderTitle("文件操作"); //上下文菜单的标题
            menu.setHeaderIcon(R.mipmap.ic_launcher);//图标
            MenuInflater infalter = getMenuInflater(); //
            infalter.inflate(R.menu.main,menu);//实例化main布局
    
        }
    

    xml文件的布局

    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:id="@+id/menu_item1"
            android:orderInCategory="100" <!--  决定菜单中选项的排列顺序 数字越大优先级越低,排位越靠后-->
            android:showAsAction="never"     <!--  表示是否默认显示出来-->
            android:title="复制"></item>
        <item
            android:id="@+id/menu_item2"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="粘贴"></item>
        <item
            android:id="@+id/menu_item3"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="剪切"></item>
        <item
            android:id="@+id/menu_item4"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="重命名"></item>
    </menu>
    

     对ContextMenu的监听

      @Override
        public boolean onContextItemSelected(MenuItem item) {
            switch (item.getItemId()){
                case R.id.menu_item1:
                    Toast.makeText(MainActivity.this, "你选择了复制", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.menu_item2:
                    Toast.makeText(MainActivity.this, "你选择了粘贴", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.menu_item3:
                    Toast.makeText(MainActivity.this, "你选择了剪切", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.menu_item4:
                    Toast.makeText(MainActivity.this, "你选择了重命名", Toast.LENGTH_SHORT).show();
                    break;
            }
            return super.onContextItemSelected(item);
        }
    
  • 相关阅读:
    ios的自动转屏
    Acoustic Echo Cancellation (AEC) 回音消除技术探索
    springMVC之数据传递
    redis.conf 配置详解
    HDU 1880 字符串hash 入门题
    算法题: 求一个整数数组中,通过元素加减运算得到指定结果的所有运算过程. 例如【5,4,6,7,1】= 9 ?
    创建和使用SQL Server SSAS本地多维数据集
    yum局域网软件源搭建
    [置顶] 使用Android OpenGL ES 2.0绘图之六:响应触摸事件
    [置顶] Nosql笔记(一)——关系型数据库回顾
  • 原文地址:https://www.cnblogs.com/tonghao/p/5723514.html
Copyright © 2011-2022 走看看