zoukankan      html  css  js  c++  java
  • PopupMenu-使用实例跟监听事件

    今天需要给一个控件添加弹出菜单功能。就顺便学习了下popupMenu的使用,记录下来。

    它的使用其实也非常的简单,看如下代码

    popupMenu = new PopupMenu(MainActivity.this, eText);
                    popupMenu.getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());
                    Menu menu = popupMenu.getMenu();
                    menu.findItem(R.id.search).setVisible(false);
                    popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
                        
                        @Override
                        public boolean onMenuItemClick(MenuItem arg0) {
                            // TODO Auto-generated method stub
                            bt3.setText("onMenuItemClick");
                            return false;
                        }
                    });
                    popupMenu.setOnDismissListener(new OnDismissListener() {
                        
                        @Override
                        public void onDismiss(PopupMenu arg0) {
                            // TODO Auto-generated method stub
                            eText.setText("ondismiss");
                        }
                    });
                    
                    popupMenu.show();

    具体步骤

    1.创建一个 PopupMenu 实例

    //第二个参数绑定的是控件,也就是列表从这个控件的位置弹出
    popupMenu = new PopupMenu(MainActivity.this, eText);

    2.给这个菜单添加menu列表

    //这个是绑定列表,也就是弹出的菜单列表
    popupMenu.getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());

    3.添加列表监听事件

    popupMenu.setOnMenuItemClickListener

    4.添加popupmenu消失事件监听

    //当菜单消失的时候,这个方法会触发
    popupMenu.setOnDismissListener

    5.显示列表,这个一定要有,否则不会显示菜单

    popupMenu.show();
    //隐藏的话
    popupMenu.dissmiss();

    如果你想操作添加的menu里的item,你可以使用

    Menu menu = popupMenu.getMenu();
    menu.findItem(R.id.search).setVisible(false);

    来得到每一个item来进行操作

  • 相关阅读:
    Delphi stdCall意义
    Delphi 与 DirectX 之 DelphiX(10): TPictureCollectionItem.StretchDraw
    delphi中的TCollection
    Delphi XE5教程8:使用Delphi命名空间
    在 centos 系统中添加审计用户并利用 sudoers 进行权限控制
    在 centos 8 中添加 sudoer 用户
    React.Fragment
    js保留两位小数方法总结
    正则表达式的() [] {} 的区别
    Typora如何配置gitee图床
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_popupmenu_15728113.html
Copyright © 2011-2022 走看看