Menu的分类

1.选项菜单(OptionMenu)

选项菜单是一个应用的主菜单项,用于放置对应用产生全局影响的操作。

操作栏中

菜单的建立

//创建OptionMenu
public boolean onCreateOptionsMenu(Menu menu){//加载菜单资源getMenuInflater().inflate(R.menu.option,menu);//两个参数(menu资源,菜单对象)//return super.onCreateOptionsMenu(menu);需要renturn true,否则菜单不会显示return true;
}

菜单的属性:

android:showAsAction="always"将本文显示在外面

android:icon="图片"该文本处显示图片,但是此时不显示文本

android:showAsAction="always|withText"//显示图片的同时显示文本

android:showAsAction="never"不会直接在菜单栏外显示

android:showAsAction="collapseActionView"一般和ifRoom一起用,表示折叠该选项,有空间的时候展示(折叠是指在菜单内)

option菜单选项的选中

 //optionMenu菜单项的选中方法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.exit:Toast.makeText(this, "退出", Toast.LENGTH_SHORT).show();finish();break;}return true;}

2.上下文菜单(ContextMenu)

长按某个View不放,就会在屏幕中间弹出ContextMenu

//4.为按钮设置上下文操作模式//①实现ActionModeCallBack回调接口//在View的长按事件中去启动上下文操作模式findViewById(R.id.ctx_btn).setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic boolean onLongClick(View view) {startActionMode(cb);return false;}});}ActionMode.Callback cb=new ActionMode.Callback(){//创建,在启动上下文操作模式时(startActionMode(Callback))时调用@Overridepublic boolean onCreateActionMode(ActionMode actionMode, Menu menu) {Log.e("TAG","创建");//上下文资源菜单的配置getMenuInflater().inflate(R.menu.context,menu);return true;}//在创建方法后进行调用@Overridepublic boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {Log.e("TAG","准备");return false;}@Overridepublic boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {Log.e("TAG","点击");switch(menuItem.getItemId()){case R.id.delte:Toast.makeText(OptionmenuActivity.this, "删除", Toast.LENGTH_SHORT).show();break;case R.id.c1:Toast.makeText(OptionmenuActivity.this, "操作一", Toast.LENGTH_SHORT).show();break;case R.id.c2:Toast.makeText(OptionmenuActivity.this, "操作二", Toast.LENGTH_SHORT).show();break;}return true;}//上下文操作模式结束时被调用@Overridepublic void onDestroyActionMode(ActionMode actionMode) {Log.e("TAG","结束");}};

3.弹出菜单(PopupMenu)

一个模态形式的弹出菜单,绑定在某个View上,一般出现在被绑定的View的xiaf。

点击某个控件时这个菜单就会出现在该控件的下方将菜单xml显示出来

//popup_but:演示PopupMenuButton popupButton=findViewById(R.id.popup_but);popupButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//①实例化PopupMenu对象(参数2:被绑定的View)PopupMenu menu=new PopupMenu(OptionmenuActivity.this,popupButton);//②加载菜单资源:利用MenuInflate将Menu资源加载到PopupMenu.getMenu()中//将R.menu.xx对于的菜单资源加载到弹出式菜单中menu.getMenuInflater().inflate(R.menu.popup,menu.getMenu());//③为PopupMenu设置点击监听事件menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem menuItem) {switch(menuItem.getItemId()){case R.id.copy:Toast.makeText(OptionmenuActivity.this, "复制", Toast.LENGTH_SHORT).show();break;case R.id.paste:Toast.makeText(OptionmenuActivity.this, "粘贴", Toast.LENGTH_SHORT).show();break;}return true;}});//④千万不要忘记这一步,显示PopupMenumenu.show();//显示}});

Menu:选项菜单,上下文菜单,弹出式菜单相关推荐

  1. android菜单点击功能怎么做的,单击android中的Menu按钮打开上下文菜单

    Are you sure you want to open context Menu on Click of Menu button? 因为,上下文菜单适用于特定视图, 上下文菜单提供影响UI中特定项 ...

  2. Android菜单:选项菜单+上下文菜单+子菜单

    菜单是人机交互的重要接口,在 Android SDK 中,提供了菜单类 android.view.Menu,以完成与菜单有关的操作. Android SDK 提供三种菜单,分别如下. 1)Option ...

  3. 选项菜单_上下文菜单_子菜单_图标菜单_自定义菜单_联系人标记弹出菜单

    菜单控件<Menu > 选项菜单(Option Menu) 单击Menu实体按钮弹出,android中把它叫做option menu 上下文菜单(ContextMenu 是Menu的子接口 ...

  4. 图解使用Win8Api进行Metro风格的程序开发十二----上下文菜单

    我们紧接着上篇,这篇将介绍如何使用Windows.UI.Popups API,创建PopupMenu菜单 和处理oncontextmenu事件. --------------------------- ...

  5. 上下文菜单ContextMenu

    Res目录下menu下创建listview_menu.xml <?xml version="1.0" encoding="utf-8"?> < ...

  6. Android Menu,OptionMenu选项菜单,ContextMenu上下文菜单,Contextual ActionMode,PopUp Menu,PopU pWi ndow

    Android Menu 一.Opti onMenu选项菜单: (一).简介: 1.A ndroi d应用中的菜单默认是隐藏的,只有当用户点击手机上的ME NU 键,系统才会显示菜单.这种菜单叫做选项 ...

  7. Android 上下文菜单(Context Menu)

    一.概述 Android中,上下文菜单是通过onLongClick(...)事件访问的.在事件触发后显示菜单项. 在使用上下文菜单时,通常在onCreate(...)方法中,先行注册上下文菜单.在实现 ...

  8. 【Android基础知识】选项菜单、上下文菜单、子菜单的使用

    Android菜单类型 菜单是为了增加更多的功能,不占用屏幕的空间.Android中菜单类型有三类,选项菜单(OptionMenu).上下文菜单(ContextMenu).子菜单(SubMenu),下 ...

  9. 云客Drupal源码分析之菜单上下文连接Menu contextual links

    drupal可以为页面中的局部区域提供额外的链接,通常用这些链接指向和这个区域相关的页面,这些链接就是本篇所说的菜单上下文链接,在drupal中被大量运用,她们位于哪里呢?以默认安装为例:以管理员身份 ...

最新文章

  1. 蓝桥杯--2013--黄金连分数(大数)
  2. krc 编辑 linux,Linux网络编程
  3. 全国计算机二级office基础知识,全国计算机二级office考试内容
  4. 本地执行php查看内存占用,查看页面执行php占用内存情况
  5. 设置 shell 脚本中 echo 显示内容带颜色
  6. 最强京东Java面试题(共现场4面)
  7. 老司机教你分析日志:分析用户的地理位置信息
  8. Java try catch语句详解
  9. Madagascar的宏定义函数--取最值、取整
  10. kd-Tree 【专题@AbandonZHANG】
  11. 转:windows 蓝屏代码 .
  12. 如何禁用 7 个完全不必要的设置来优化 Mac?
  13. 【python基础】h5py库的基本使用
  14. 6.5一些keil编程错误总结
  15. 【STL容器讲解—栈队列】
  16. appium IOS 报错 [iProxy] recv failed: Operation not permitted
  17. 如何通过SEO思维收割各大平台的流量?
  18. 即时配送,对接闪送预下单接口,报“签名校验失败”
  19. sqlserver加载驱动失败的问题
  20. 某网站cookie加密黑盒调用与算法还原

热门文章

  1. [原创]中国大陆民谣盘点7 郁冬《露天电影院》
  2. 用神经网络做单变量时序预测,如何构造神经网络的输入呢?
  3. KMP算法——South Central USA 2006 蓝色牛仔裤
  4. 如何用神经网络去拟合一条曲线?
  5. 面试官:Dubbo是什么,他有什么特性?
  6. 32个c语言关键字发音,关于c语言的32个关键字的读法。
  7. libswresample音频重采样有杂音问题解决
  8. NOD32与VS冲突问题(端口问题)
  9. CVPR2020 | 论文阅读——Multiple Anchor Learning for Visual Object Detection
  10. 零售商场无线覆盖解决方案