【AS中关于几个menu的使用】

1.选项菜单的使用
在这里插入图片描述

//激活显示菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.option,menu);
        return true;
    }

    //当菜单被选中时操作
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.save:
                Toast.makeText(this,"保存成功",Toast.LENGTH_SHORT).show();
                break;
            case R.id.setting:
                Toast.makeText(this,"设置成功",Toast.LENGTH_SHORT).show();
                break;
            case R.id.exid:
                Toast.makeText(this,"退出成功",Toast.LENGTH_SHORT).show();
                finish();
        }
        return super.onOptionsItemSelected(item);
    }

2.上下文菜单
在这里插入图片描述
//contextMenu菜单的使用
//1.注册
registerForContextMenu(findViewById(R.id.btn10));
//2.创建,覆盖OnCreateMenu
//3.菜单项的操作

//2.创建,覆盖OnCreateMenu
@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        getMenuInflater().inflate(R.menu.contextmenu,menu);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.rename:
                Toast.makeText(this,"重命名",Toast.LENGTH_SHORT).show();
            case R.id.queding:
                Toast.makeText(this,"确定",Toast.LENGTH_SHORT).show();
            case R.id.qvxiao:
                Toast.makeText(this,"取消·",Toast.LENGTH_SHORT).show();
        }
        return super.onContextItemSelected(item);
    }

使用上下文的方法创建

//4.使用上下文操作模式1.实现ActionMode CallBack 2.在view长按中启动上下文操作模式
        findViewById(R.id.btn10).setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                startActionMode(cb);
                return false;
            }
        });
 ActionMode.Callback cb = new ActionMode.Callback() {
        @Override
        public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
            //启动窗体时激活(StartActionMode(Callback))时调用
            Log.e("Tag","创建");
            getMenuInflater().inflate(R.menu.contextmenu,menu);
            return true;
        }

        @Override
        public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
            //在创建方法后进行使用
            Log.e("Tag","准备");
            return false;
        }

        @Override
        public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
            //点击控件的时候使用
            Log.e("Tag","使用");
            switch (menuItem.getItemId()){
                case R.id.rename:
                Toast.makeText(menuActivity.this,"重命名",Toast.LENGTH_SHORT).show();
            case R.id.queding:
                Toast.makeText(menuActivity.this,"确定",Toast.LENGTH_SHORT).show();
            case R.id.qvxiao:
                Toast.makeText(menuActivity.this,"取消·",Toast.LENGTH_SHORT).show();
            }
            return true;
        }

        @Override
        public void onDestroyActionMode(ActionMode actionMode) {
            //上下文操作结束的时候使用
            Log.e("Tag","结束");
        }
    };

3.上下文菜单的使用
在这里插入图片描述

//给按键添加点击效果,实现弹出菜单
 final Button popup = findViewById(R.id.btn10);
 popup.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
         //1.实例化PopupMenu对象(参数2被锚定的对象,也就是弹出框对应的控件位置)
         final PopupMenu menu = new PopupMenu(menuActivity.this,popup);
         //2.加载菜单资源,将菜单样式加入到菜单中
         menu.getMenuInflater().inflate(R.menu.popup,menu.getMenu());
         //3.添加监听事件
         menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
             @Override
             public boolean onMenuItemClick(MenuItem menuItem) {
                 switch (menuItem.getItemId()){
                     case R.id.copyItem:
                         Toast.makeText(menuActivity.this,"复制成功",Toast.LENGTH_SHORT).show();
                     case R.id.pasterItem:
                         Toast.makeText(menuActivity.this,"粘贴成功",Toast.LENGTH_SHORT).show();
                 }
                 return true;
             }
         });
         //4.显示菜单,很重要
         menu.show();
     }
 });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值