菜单项(Menu)的初步认识 以及 多级菜单(SubMenu)的初步认识


MainActivity.class
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.txt);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//方法一、静态添加 xml方式添加菜单
// getMenuInflater().inflate(R.menu.menu_main, menu);
//方法二、动态添加 代码添加菜单项
MenuItem item = menu.add(1, 100, 1, "赵1"); //参数(groupID , ItemID , order ,title)
item.setTitle("aaa");
menu.add(1,101,1,"赵2");
menu.add(1,102,1,"赵3");
menu.add(1,5,1,"赵4");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
switch (id){
case 100:{
Intent intent = new Intent(MainActivity.this,second_demo.class);
item.setIntent(intent); //跳转到其他activity
textView.setText("点击了" + id);
break;
}
case 101:{
textView.setText("点击了" + id);
break;
}
case 102:{
textView.setText("点击了" + id);
break;
}
case 5:{
textView.setText("点击了" + id);
break;
}
}
return super.onOptionsItemSelected(item);
}
}
---------------------------------------------------------------------------------------------我是华丽丽de分界线-------------------------------------------------------------------------------
SubMenu多级菜单 子菜单

方法一:动态加载
MainActivity.class
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//添加子菜单
//addSubMenu有子菜单的主菜单
SubMenu file = menu.addSubMenu("文件");
SubMenu edit = menu.addSubMenu("编辑");
//嵌套菜单SubMenu
SubMenu A = menu.addSubMenu("第一层");
SubMenu AA = A.addSubMenu("第二层");
SubMenu AAA = AA.addSubMenu("第三层");
AAA.add(3,1,1,"第四层");
file.add(1,1,1,"新建");
file.add(1,2,1,"打开");
file.add(1,3,1,"保存");
file.setHeaderTitle("文件de操作");
edit.add(2, 1, 1, "复制");
edit.add(2,2,1,"粘贴");
edit.add(2,3,1,"剪切");
edit.setHeaderTitle("编辑de操作");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getGroupId() == 1){
switch (item.getItemId()){
case 1:
Toast.makeText(MainActivity.this,"点击了新建",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(MainActivity.this,"点击了打开",Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(MainActivity.this,"点击了保存",Toast.LENGTH_SHORT).show();
break;
}
}else if(item.getGroupId() == 2){
switch (item.getItemId()){
case 1:
Toast.makeText(MainActivity.this,"点击了复制",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(MainActivity.this,"点击了粘贴",Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(MainActivity.this,"点击了剪切",Toast.LENGTH_SHORT).show();
break;
}
}
return super.onOptionsItemSelected(item);
}
}
方法二、静态加载
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.edit_copy:
Toast.makeText(MainActivity.this,"点击了copy",Toast.LENGTH_SHORT).show();
break;
case R.id.edit_jianqie:
Toast.makeText(MainActivity.this,"点击了剪切",Toast.LENGTH_SHORT).show();
break;
case R.id.edit_nietian:
Toast.makeText(MainActivity.this,"点击了粘贴",Toast.LENGTH_SHORT).show();
break;
case R.id.file_new:
Toast.makeText(MainActivity.this,"点击了新建",Toast.LENGTH_SHORT).show();
break;
case R.id.file_open:
Toast.makeText(MainActivity.this,"点击了打开",Toast.LENGTH_SHORT).show();
break;
case R.id.file_save:
Toast.makeText(MainActivity.this,"点击了保存",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
menu_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item
android:id="@+id/file"
android:title="文件"
app:showAsAction="never" > <menu >
<item
android:id="@+id/file_new"
app:showAsAction="never"
android:title="新建"
/>
<item
android:id="@+id/file_open"
app:showAsAction="never"
android:title="打开"
/>
<item
android:id="@+id/file_save"
app:showAsAction="never"
android:title="保存"
/>
</menu> </item> <item
android:id="@+id/edit"
android:title="编辑"
app:showAsAction="never" > <menu>
<item
android:id="@+id/edit_copy"
app:showAsAction="never"
android:title="复制"
/>
<item
android:id="@+id/edit_nietian"
app:showAsAction="never"
android:title="粘贴"
/>
<item
android:id="@+id/edit_jianqie"
app:showAsAction="never"
android:title="剪切"
/>
</menu> </item> </menu>
菜单项(Menu)的初步认识 以及 多级菜单(SubMenu)的初步认识的更多相关文章
- MVC5+EF6 入门完整教程13 -- 动态生成多级菜单
稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据mode ...
- jquery自定义插件-参数化配置多级菜单导航栏插件
1 自定义菜单导航栏插件的必要性 看图说话,下面是利用自定义的菜单导航栏插件simpleMenu创建的网站导航示例: 插件默认提供的是如上图的导航栏样式,即一二级菜单为横向分布:三四级菜单为纵向分布. ...
- Cocos2d-x lua 游戏中的菜单(Menu)
菜单相关类包含 菜单(Menu)类 和 菜单项( MenuItem )类 Menu类图(派生于Layer) ref <-- Node <-Layer <-- Menu MenuIte ...
- Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点( FROM IBM)
Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点 菜单是各种软件及开发平台会提供的必备功能,Eclipse 也不例外,提供了丰富的菜单,包括主菜单(Main Menu),视图 / ...
- Toolbar 工具栏 菜单 标题栏 Menu
要使用Toolbar,要先将标题栏(ActionBar)关掉: style.xml中:<style name="MainActivityTheme" parent=" ...
- 【转】 Pro Android学习笔记(三四):Menu(5):动态菜单
目录(?)[-] OptionsMenu的创建方式 如何再次创建OptionsMenu 每次访问都重新填充菜单项 OptionsMenu的创建方式 OptionMenu在第一次访问该菜单时调用,只调用 ...
- java生成多级菜单树
使用java实现一个多级菜单树结构 先上数据库 ps_pid字段很重要,是父级菜单的id Menu类 Menu类要新增一个字段,用来存放子菜单 /** * 子菜单列表 */ private List& ...
- Visual C# 2010 实现菜单项和状态栏
演练:向窗体提供标准菜单项 Visual Studio 2010 其他版本 此主题尚未评级 - 评价此主题 可以通过 MenuStrip 控件为窗体提供标准菜单. 此演练演示如何使 ...
- 单片机C语言下LCD多级菜单的一种实现方法
摘要: 介绍了在C 语言环境下,在LCD 液晶显示屏上实现多级嵌套菜单的一种简便方法,提出了一个结构紧凑.实用的程序模型. 关键词: 液晶显示屏; 多级菜单; 单片机; C 语言; LCD 中 ...
随机推荐
- 设计模式七大原则(C++描述)
前言 最近在学习一些基本的设计模式,发现很多博客都是写了六个原则,但我认为有7个原则,并且我认为在编码中思想还是挺重要,所以写下一篇博客来总结下 之后有机会会写下一些设计模式的博客(咕咕咕...... ...
- 初识MyBatis之HelloWorld
1.先下载MyBatis相关Jar包. 2. 创建数据库和表 CREATE TABLE tbl_employee( id ) PRIMARY KEY AUTO_INCREMENT, last_name ...
- docker教程(1) - 快速使用
docker 笔记(1) --docker安装.获取镜像.启动容器.删除容器 一.安装 Docker 官方文档 根据官方文档整理简单流程 从Docker Hub下载mac包 运行磁盘镜像,将Docke ...
- eNSP——配置Trunk接口
原理: 在以太网中,通过划分 VLAN 来隔离广播域和增强网络通信的安全性.以太网通常由多台交换机组成,为了使 VLAN 的数据帧跨越多台交换机传递,交换机之间互连的链路需要设置为干道链路( Trun ...
- gdb调试工具学习
GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比 ...
- GitLab中批量更换路径并保留历史记录
git-change-path.sh #!/bin/bash cat git-name.txt | while read line do echo $line git clone --mirror g ...
- win10现在安装redis
一.下载: 下载地址: https://github.com/MicrosoftArchive/redis/releases 根据系统下载的版本:以(64位为例) 下载后一般解压到根目录下:如(E:\ ...
- Python基础 第四章 字典(2)字典方法&章小结
1. clear 方法clear删除所有的字典项,就地执行,什么都不返回(或者说返回None) d = {} d['name'] = 'Gumby' d['age'] = 42 print(d) re ...
- 从入门到自闭之Python解释器安装
Python解释器的安装 1 下载 下载地址:https://www.python.org 选择windows平台的链接进行下载 https://www.python.org/downloads/ ...
- spring配置文件和spring mvc配置文件的区别
Question: Are applicationContext.xml and spring-servlet.xml related anyhow in Spring Framework? Will ...