菜单栏的创建
来源:互联网 发布:sql入门到精通 编辑:程序博客网 时间:2024/05/22 05:49
menu在Activity中是非常常见的, 那么如何写一个menu呢?
在Android中menu有三种:
1. OptionsMenu 主菜单
2. ContextMenu 上下文菜单
3. PopupMenu 弹出菜单
OptionMenu
- 首先创建一个menu的xml文件, 定义我们要在菜单栏里有哪些功能
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- showAsAction 可以使它在菜单栏上显示 icon : 为菜单栏上的功能设置图片--> <item android:title="@string/Settings" android:id="@+id/action_settings" /> <item android:title="@string/help" android:id="@+id/action_help" app:showAsAction="always" android:icon="@mipmap/ic_launcher" /></menu>
- 将菜单加载到布局上, 就需要重写方法
@Override public boolean onCreateOptionsMenu(Menu menu) { //getMenuInflater 用于将xml文件, 添加到menu中 getMenuInflater().inflate(R.menu.main_menu, menu); return true; }
- 再对item设置点击事件, 实现跳转等功能的实现
@Override public boolean onOptionsItemSelected(MenuItem item) { int itemId = item.getItemId(); switch (itemId){ case R.id.action_settings: // TODO: 处理菜单点击事件 Toast.makeText(MainActivity.this, "设置被点击了", Toast.LENGTH_SHORT).show(); break; case R.id.action_help: Intent intent = new Intent(this, helpActivity.class); startActivity(intent); } return true; }
ContextMenu
ContextMenu主要是针对一个控件, 常用于ListView和GridView. 例如:对ListView中的一条item进行一系列的动作, 都可以通过ContextMenu来进行, 只要定义menu的行为(即 为menu中的条目设置id, 通过id找到, 并进行操作), 再重写onContextItemSelected方法就可以了.
menu的xml文件:
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_copy" android:title="@string/helping" /></menu>
设置点击事件要重写的方法:
@Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { //通过id找到 case R.id.action_copy: // TODO:复制 //上下文菜单的附加信息, 只有在ListView和GridView中才可以使用 //ContextMenuInfo 得到当前item的信息 ContextMenu.ContextMenuInfo menuInfo = item.getMenuInfo(); AdapterView.AdapterContextMenuInfo adapterContextMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo; //得到item中的数据信息, 如果不进行上一步的强转就无法得到position String s = strings.get(adapterContextMenuInfo.position); Toast.makeText(helpActivity.this, "复制", Toast.LENGTH_SHORT).show(); break; } return true; }
PopupMenu
弹出菜单, 即 我们点击某一个控件会弹出菜单的一种方式. 它的xml布局和之前的相同, 就不多说啦.
它要显示在哪个Activity上, 点击哪个控件时会弹出, 都是这个菜单所要设置的.
首先我们要设置一个显示的方法, 代码是这个样子哒:
public void btnShowPopupMenu(View view) { //第二个参数, 代表弹出菜单在哪个控件上显示 PopupMenu popupMenu = new PopupMenu(this, view); //填充 popupMenu.getMenuInflater() .inflate(R.menu.seetings_popup_menu, popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(this); popupMenu.show(); }
另外还要设置点击事件, 即 我们点击这个菜单上的某一项功能时的具体实现. 这里只是弹出了一个Toast, 没有什么具体的操作, 大家了解就好.
代码是这个样子哒:
@Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.action_copy: Toast.makeText(SeetingsActivity.this, "success", Toast.LENGTH_SHORT).show(); break; } return false; }
三种形式的菜单栏就介绍完了, 有什么不正确的地方还请大神们指正.
1 0
- 菜单栏的创建
- 菜单栏和工具栏的创建
- java中菜单栏的创建
- 创建菜单栏
- 创建“菜单栏”
- 图形用户界面 菜单栏、工具栏的创建方法
- MFC可停靠菜单栏的创建过程
- 窗体菜单栏的创建与使用
- QT 菜单栏 工具栏 Qaction的创建
- MFC菜单栏的创建和使用
- EXCEL创建菜单栏项目
- Android 创建菜单栏
- Android创建底部菜单栏
- MFC基于对话框的菜单栏,工具栏和状态栏的创建
- 创建无标题栏,无边框,无菜单栏的单文档
- 创建无标题栏,无边框,无菜单栏的单文档
- CS01创建BOM时菜单栏设置的作用
- 如何创建和菜单栏分开的工具栏呀?
- ListView上拉加载加载分页数据
- ld: symbol(s) not found for architecture i386
- Acure学习
- 【ImageLoader】Universal-Image-Loader学习系列(二),ImageLoaderConfiguration的使用
- Java String 字符串
- 菜单栏的创建
- 复数类
- vmware ubuntu 新增硬盘方法
- 手机卫士项目
- 关于Chrome即谷歌调试工具的使用
- 互联网协议入门(一) 作者:阮一峰
- TextMate 编辑 HTML 使用的快捷键记录
- 一篇介绍PHP集成服务器Wamp安装,使用的文章
- 日期类