<!-- 定义基础布局LinearLayout -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical">
<!-- 定义TextView控件 -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="请点击物理菜单键显示菜单,再次点击菜单选项显示子菜单"
/>
</LinearLayout>
package com.example.yanlei.yl2;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast; //导入必备的包 public class MainActivity extends AppCompatActivity { //定义Menu中每个菜单选项的Id
final int Menu_1 = Menu.FIRST;
final int Menu_2 = Menu.FIRST + 1;
final int Menu_3 = Menu.FIRST + 2;
final int Menu_4 = Menu.FIRST + 3;
final int Menu_5 = Menu.FIRST + 4;
final int Menu_6 = Menu.FIRST + 5;
final int Menu_7 = Menu.FIRST + 6;
final int Menu_8 = Menu.FIRST + 7;
final int Menu_9 = Menu.FIRST + 8; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 调用父类的onCreate方法
// 通过setContentView方法设置当前页面的布局文件为activity_main
setContentView(R.layout.activity_main);
} //创建Menu菜单的回调方法
public boolean onCreateOptionsMenu(Menu m) {
//定义子菜单,然后添加到Menu中
SubMenu fileMenu = m.addSubMenu("新建");
//在菜单选项的子菜单中添加选项内容
//add方法的参数:add(分组id,itemid, 排序, 菜单文字)
fileMenu.add(0, Menu_1, 0, "文件1");
fileMenu.add(0, Menu_2, 0, "文件2");
fileMenu.add(0, Menu_3, 0, "文件3"); SubMenu openMenu = m.addSubMenu("打开");
//在菜单选项的子菜单中添加选项内容
//add方法的参数:add(分组id,itemid, 排序, 菜单文字)
openMenu.add(0, Menu_4, 0, "文件4");
openMenu.add(0, Menu_5, 0, "文件5");
openMenu.add(0, Menu_6, 0, "文件6"); SubMenu saveMenu = m.addSubMenu("保存"); //在菜单选项的子菜单中添加选项内容
//add方法的参数:add(分组id,itemid, 排序, 菜单文字)
saveMenu.add(0, Menu_7, 0, "文件7");
saveMenu.add(0, Menu_8, 0, "文件8");
saveMenu.add(0, Menu_9, 0, "文件9");
return super.onCreateOptionsMenu(m);
} //Menu菜单选项的选项选择的回调事件
public boolean onOptionsItemSelected(MenuItem item) {
//参数为用户选择的菜单选项对象
//根据菜单选项的id来执行相应的功能
switch (item.getItemId()) {
case 1:
Toast.makeText(this, "新建文件1", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this, "新建文件2", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(this, "新建文件3", Toast.LENGTH_SHORT).show();
break;
case 4:
Toast.makeText(this, "打开文件4", Toast.LENGTH_SHORT).show();
break;
case 5:
Toast.makeText(this, "打开文件5", Toast.LENGTH_SHORT).show();
break;
case 6:
Toast.makeText(this, "打开文件6", Toast.LENGTH_SHORT).show();
break;
case 7:
Toast.makeText(this, "保存文件7", Toast.LENGTH_SHORT).show();
break;
case 8:
Toast.makeText(this, "保存文件8", Toast.LENGTH_SHORT).show();
break;
case 9:
Toast.makeText(this, "保存文件9", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}

android 子菜单的更多相关文章

  1. Android 菜单之子菜单SubMenu

    子菜单就是在点击了菜单中的选项后弹出的要对菜单中选项操作的菜单           他的操作与之前的两种类型的菜单操作差不多 动态添加 @Override public boolean onCreat ...

  2. Android学习(二十三)SubMenu 子菜单

    一.SubMenu子菜单 和功能菜单相似,但是可以添加子菜单. 二.实现步骤: 1.通过onCreateOptionsMenu方法创建子菜单,可以通过代码动态创建,也可以通过xml进行创建. 2.通过 ...

  3. 【转】 Pro Android学习笔记(三一):Menu(2):扩展、图片、子菜单

    目录(?)[-] 菜单扩展 菜单项加入图片 子菜单 菜单扩展 如果菜单项很多,超过六个时,就会采用菜单扩展模式.在例子中我加入了10个菜单项,预计能进入菜单扩展模式,但是实际效果如右图所示.效果和li ...

  4. Android开发之Menu:OptionMenu(选项菜单)、ContextMenu(上下文菜单)、SubMenu(子菜单)

    菜单的概念,现在已经很普及了.Windows系统.Mac.桌面版Linux.Java Swing等,都有可视化菜单.一.Android平台3种菜单  选项菜单(OptionMenu).上下文菜单(Co ...

  5. Android之菜单总结

    在Android中,菜单被分为如下三种,选项菜单(OptionsMenu).上下文菜单(ContextMenu)和子菜单(SubMenu). 1. 选项菜单(OptionsMenu)详解 Activi ...

  6. Android侧滑菜单代码实现

    前两天学习了hyman老师讲的Android侧滑菜单的实现,经过自己的整理分享出来给大家学习一下 现在很多APP都有菜单侧滑的功能,本篇文章主要讲解使用自定义的HorizontalScrollView ...

  7. 安卓开发_浅谈SubMenu(子菜单)

    子菜单,即点击菜单后出现一个菜单栏供选择 创建子菜单的步骤: (1) 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单 (2 ...

  8. 【转】Android实例剖析笔记(二)--用实例讲解Andriod的开发过程,以NotesList为实例介绍Android的菜单机制

    原文网址:http://kb.cnblogs.com/page/78304/ 简介 android提供了三种菜单类型,分别为options menu,context menu,sub menu. op ...

  9. android 三级菜单 BaseExpandableListAdapter

    在网上搜了非常长时间.没有找到合适的Android三级菜单.所以就自己动手写了一个,主要使用了BaseExpandableList来实现,通过三个布局文件来完毕相应的菜单项,详细实现请參照下图. wa ...

随机推荐

  1. Linux基础学习-MariaDB数据库管理系统

    数据库管理系统 数据库是指按照某些特定结构来存储数据资料的数据仓库,数据库管理系统是一种能够对数据库中存放的数据进行建立.修改.删除.查找.维护等操作的软件程序. 初始化MariaDB服务 [root ...

  2. iptables IP流量统计

    最后是使用ipset进行流量统计,iptaccount资料太少而且还跟网上说明的操作情况不相符,继续看源码分析组长老大都不高兴.ipset使用帮助 1. 创建ipset集合:ipset create ...

  3. ubuntu下如何对接斗鱼直播

    参考教程:https://www.cnblogs.com/liuxuzzz/p/5315998.html 大神写得挺细的,这里都不想再多说了! 为啥要做这个呢?可能真的只是为了好玩吧!!有兴趣直播的孩 ...

  4. svn设置提交时忽略某些文件

    一.在资源管理器中,右键一个未加入版本控制文件或目录,并从弹出菜单选择TortoiseSVN →Add to Ignore List,会出现一个子菜单,允许你仅选择该文件或者所有具有相同后缀的文件. ...

  5. Vue 2.0 项目在IE下显示空白

    新写的项目在 IE浏览器显示空白 解释一: Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator.Generator.Set.Maps.Proxy ...

  6. CSS3的背景background

    CSS3中的Background属性 background: background-image || background-position/background-size || background ...

  7. Kali入门配置使用(一)

    一.Kali简介 1.1.相关连接 Kali百度百科:https://baike.baidu.com/item/Kali%20linux/8305689?fr=aladdin Kali wiki:ht ...

  8. set的应用:UVa10815-Andy's First Dictionary

    Andy's First Dictionary Andy, 8, has a dream - he wants to produce his very own dictionary. This is ...

  9. eclipse代码格式化快捷键无法使用

    [产生原因] Ctrl+Shift+F快捷键组合被其他应用占有,如输入法. [解决方案] 关闭或更换其他应用快捷键或更换eclipse对应的快捷键组合.

  10. python算法-栈

    定义: 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元 ...