今天需要给一个控件添加弹出菜单功能。就顺便学习了下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来进行操作

最新文章

  1. Leetcode Combination Sum II
  2. 用issnode+IIS来托管NodeJs Server
  3. 数字证书文件格式(cer和pfx)的区别
  4. 命令格式 kill -3 pid
  5. Java深度遍历文件夹(递归实现)
  6. Java实现验证码图片
  7. JS关闭当前页面的方法
  8. Tapestry5.3使用总结
  9. 模拟Vue之数据驱动4
  10. hdu_4467_Graph(莫队算法思想)
  11. JavaWeb总结(五)—Cookie
  12. AVFoundation 框架初探究(二)
  13. Scala 枚举介绍及深入应用
  14. document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题
  15. python3 列表去除重复项保留原序
  16. Linux - 快速进入目录的方法
  17. SqlServer 循环建表、删除表、更新表
  18. Ansible--常用模块使用
  19. Python 模块介绍
  20. f5基本介绍

热门文章

  1. NOIP2017 小凯的疑惑 解题报告(赛瓦维斯特定理)
  2. 20.计算速度最快的valarray
  3. Java类和对象8
  4. miniUI-SelectGrid 弹出选择表格-翻页选中
  5. iOS单例创建的一点疑惑
  6. 我的 Linux 主目录中的隐藏文件是干什么用的?
  7. caffe(10) 命令行解析
  8. [HAOI2007][SDOI2005]反素数
  9. Android组件Activity初探
  10. GenIcam标准(六)