Android-普通菜单Menu
第一种方式,使用Java方式
第二种方式,使用menu.xml
package liudeli.activity; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast; public class MenuActivity extends Activity { private static final int MENU_ITEM_CREATE = 0;
private static final int MENU_ITEM_DELETE = 1; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
} /**
* 第一步:菜单选项
* 创建菜单
* @param menu
* @return
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
/************************* 第一种方式,使用Java方式 ****************************/
/**
* 参数一: 组号
* 参数二: 唯一的ID号
* 参数三: 排序号
* 参数四: 标题
*/
MenuItem menu_item_create = menu.add(0, MENU_ITEM_CREATE, 0, "新建"); // 设置是否可点
menu_item_create.setEnabled(true); // 设置图标,菜单有时候加载不出来,但是不会报错
menu_item_create.setIcon(android.R.drawable.ic_menu_camera); /**
* 参数一: 组号
* 参数二: 唯一的ID号
* 参数三: 排序号
* 参数四: 标题
*/
menu.add(0, MENU_ITEM_DELETE, 0, "删除"); /**
* 添加子菜单
*/
SubMenu subMenu = menu.addSubMenu("子菜单");
subMenu.add(0, 11, 0, "子菜单1");
subMenu.add(0, 12, 0, "子菜单2"); /************************* 第二种方式,使用menu.xml ****************************/
// 菜单加载器
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu, menu); /************************* menu说明 ****************************/ /*menu.add("菜单一"); // 添加菜单
menu.add(1, Menu.FIRST, Menu.FIRST, "菜单二"); // 添加菜单 带组号...
int group1 = 1;
int group2 = 2;
menu.add(group1, 1, 1, "item1");// 添加菜单 带组号...
menu.add(group1, 2, 2, "item2");// 添加菜单 带组号...
menu.add(group2, 3, 3, "item3");// 添加菜单 带组号...
menu.add(group2, 4, 4, "item4");// 添加菜单 带组号... menu.removeGroup(group1); //删除一个组
menu.setGroupVisible(group1, false); //设置可见性
menu.setGroupEnabled(group2, false); //设置是否可点
menu.setGroupCheckable(group2, true, t); //设置一组菜单的勾选情况*/ return super.onCreateOptionsMenu(menu);
} /**
* 第二步:菜单的响应
* 处理menu的点击事件
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId(); /**
* 对应 第一种方式,使用Java方式
*/
switch (id) {
case MENU_ITEM_CREATE:
Toast.makeText(this, item.getTitle() + " , 创建", Toast.LENGTH_LONG).show();
break;
case MENU_ITEM_DELETE:
Toast.makeText(this, item.getTitle() + " , 删除", Toast.LENGTH_LONG).show();
break;
case 11: // 上面代码 itemid定义是11
Toast.makeText(this, item.getTitle() + " , 第一个子菜单", Toast.LENGTH_LONG).show();
break;
case 12: // 上面代码 itemid定义是12
Toast.makeText(this, item.getTitle() + " , 第二个子菜单", Toast.LENGTH_LONG).show();
break;
default:
break;
}
// item.getTitle() 获取上面代码设置的标题 item.getItemId() 获取上面代码设置的ItemId
// Toast.makeText(this, item.getTitle() + " , " + item.getItemId(), Toast.LENGTH_LONG).show(); /**
* 对应 第二种方式,使用menu.xml
*/
switch (id) {
case R.id.menu_create:
Toast.makeText(this, item.getTitle() + " , menu.xml创建", Toast.LENGTH_LONG).show();
break;
case R.id.menu_delete:
Toast.makeText(this, item.getTitle() + " , menu.xml删除", Toast.LENGTH_LONG).show();
break;
case R.id.menu_sub1:
Toast.makeText(this, item.getTitle() + " , menu.xml子菜单一", Toast.LENGTH_LONG).show();
break;
case R.id.menu_sub2:
Toast.makeText(this, item.getTitle() + " , menu.xml子菜单二", Toast.LENGTH_LONG).show();
break;
}
// item.getTitle() 获取上面代码设置的标题 item.getItemId() 获取上面代码设置的ItemId
// Toast.makeText(this, item.getTitle() + " , " + item.getItemId(), Toast.LENGTH_LONG).show(); return super.onOptionsItemSelected(item);
} }
menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item
android:id="@+id/menu_create"
android:icon="@android:drawable/ic_menu_add"
android:title="X新建">
</item> <item
android:id="@+id/menu_delete"
android:icon="@android:drawable/ic_menu_add"
android:title="X删除">
</item> <item android:title="X子菜单"> <menu> <item
android:id="@+id/menu_sub1"
android:icon="@android:drawable/ic_menu_add"
android:title="X子菜单1">
</item> <item
android:id="@+id/menu_sub2"
android:icon="@android:drawable/ic_menu_add"
android:title="X子菜单2">
</item> </menu> </item> </menu>
效果图:
Android-普通菜单Menu的更多相关文章
- Android菜单Menu的创建
在res目录下的menu文件夹下创建一个main.xml文件,内容如下: <?xml version="1.0" encoding="utf-8"?> ...
- Android菜单详解(一)——理解android中的Menu
前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...
- android 开发-(Contextual Menu)上下文菜单的实现
在android3.0以后,安卓设备不在提供物理的菜单按键,同时,android应用提供了另外的菜单实现机制,来替代之前的菜单创建方式.安卓设备中,平常可以使用长按住某个内容弹出菜单选项.这就是我们需 ...
- Android——菜单(Menu)
菜单的运用在Android中很常见,今天就两节体育课,闲下来也想认真的学一学,正好项目中也会有应用.我是跟着菜鸟教程进行学习的,我相应的粘了一些我自己认为比较重要的,以供方便记录学习. 本章给大家带来 ...
- Android Studio —— 创建Menu菜单项
大多数android程序的右上角都会设置一个菜单按钮比如微信的界面右上角的加号. 这个需要在layout同级目录下新建文件夹命名为menu,再右击新建的menu新建xml文件:
- Android侧滑菜单代码实现
前两天学习了hyman老师讲的Android侧滑菜单的实现,经过自己的整理分享出来给大家学习一下 现在很多APP都有菜单侧滑的功能,本篇文章主要讲解使用自定义的HorizontalScrollView ...
- android上下文菜单
XML: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...
- Android按键之Menu详解
Android手机一般都有三个键,返回键.Home键.菜单键: Android系统的菜单支持主要通过4个接口来实现. 从上图可以看出Menu是一个父类接口,它下面有两个子类一个是ContextMenu ...
- Android ActionBar以及menu的代码设置样式
menu部分xml代码 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android= ...
- android 上下文菜单详解
本文使用xml来创建上下文菜单 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:andr ...
随机推荐
- Egit的merge合并冲突具体解决方法
稍微总结下弄了半个下午的egit的merge合并冲突解决方法,网上看的都是一个模板出来的,看的糊里糊涂,花了很多时间去实验整个合并流程.. 前提工作 创建一个普通JAVA工程Test,创建一个类Tes ...
- Java.sql.SQLException: 无效的列类型: 1111
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: ...
- java并发:volatile关键字
java并发需要保证原子性,可见性,有序性. http://www.cnblogs.com/expiator/p/9226775.html 一.volatile关键字作用如下: 1.volatile关 ...
- asp.net后台解析JSON,并将值赋给对象
示例代码如下: using System; using System.Collections.Generic; using System.Web.Script.Serialization; publi ...
- 利用python实现二分法和斐波那契序列
利用python实现二分法:我的实现思路如下 1.判断要查找的值是否大于最大值,如果大于则直接返回False 2.判断要查找的值是否小于最小值,如果小于则直接返回False 3.如果要查找的值在最大值 ...
- 获取客户端真实IP地址
Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: ...
- centos自定义安装pip3
题记 在之前的文章centos云服务器安装Python3记录 记录了怎么自定义安装 Python3 ,在后边测试pip3的时候发现了个问题: pip --version terminal 打印: pi ...
- VideoView的全屏问题
package com.bi.standardcompuse.app.widgets; import android.content.Context;import android.util.Attri ...
- php 函数中静态变量的问题
<?php function msg() { static $a = 0; echo $a++, '<br />'; } msg(); msg(); msg(); 上述代码,分别输出 ...
- yii2中的rules 自定义验证规则详解
yii2的一个强大之处之一就是他的Form组件,既方便又安全.有些小伙伴感觉用yii一段时间了,好嘛,除了比tp"难懂"好像啥都没有. 领导安排搞一个注册的功能,这家伙刷刷刷的又是 ...