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 ...
随机推荐
- intellij idea 的常见配置
1.视图配置 配置好后如下图: 2.修改字体大小 3.编码修改 4.行号显示 5.控制台字体大小调整 File->Settings->Editor->Colors & F ...
- vmstat工具
vmstat vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, 是实时系统监控工具.该命令通过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数 ...
- 利用Python和webhook实现自动提交代码
最近在为公司书写项目的api文档,计划利用码云的wiki管理整个项目,公司自有git作为项目内容依托,这样全员都可参与,而我定期向码云推送就可以了. 问题 根据需求遇见了这样一个问题:我每次从git上 ...
- EditTex
<EditText android:layout_width="match_parent" android:layout_height="100dp" a ...
- 批量去重URL地址并剔除打不开网址
#coding=utf-8 import os import httplib import socket dictlist ={}; def ReadHost(): hosts = []; obn = ...
- 'WebElement' object is not iterable
checkbox.html源码: <html> <head> <meta http-equiv="content-type" content=&quo ...
- svn一次性add/delete所有文件
Linux命令行下,svn add 一次性批量上传 命令行下操作svn没有使用界面形式的TortoiseSVN直观,但是不管怎样,命令行下操作svn还是有它的有点,如果你碰到一次需要svn add许多 ...
- 用java创建UDF,并用于Hive
典型代码如下: 导入UDF类: import org.apache.hadoop.hive.ql.exec.UDF; public class UpperCassUDF extends UDF{ pu ...
- boost::asio 学习草稿
http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio/ 可以多个线程拥有io_ ...
- 2018.10.15 bzoj4445: [Scoi2015]小凸想跑步(半平面交)
传送门 话说去年的省选计算几何难度跟前几年比起来根本不能做啊(虽然去年考的时候并没有学过计算几何) 这题就是推个式子然后上半平面交就做完了. 什么? 怎么推式子? 先把题目的概率转换成求出可行区域. ...