安卓开发_浅谈SubMenu(子菜单)
子菜单,即点击菜单后出现一个菜单栏供选择
创建子菜单的步骤:
(1) 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单
(2) 调用SubMenu的add()方法,添加子菜单项
(3) 覆盖onContextItemSelected()方法,响应子菜单的单击事件
示例:
(1) 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单
//动态添加子菜单
SubMenu file = menu.addSubMenu("文件");//子菜单的名字
SubMenu edit = menu.addSubMenu("编辑");//子菜单的名字
(2) 调用SubMenu的add()方法,添加子菜单项
//给子菜单添加菜单项
file.setHeaderTitle("文件操作");//菜单标题
file.setHeaderIcon(R.drawable.icon_72); //菜单图标
file.add(, , , "打开");
file.add(, , , "关闭");
file.add(, , , "删除"); edit.setHeaderTitle("编辑操作");
edit.setHeaderIcon(R.drawable.icon_72);
edit.add(,,,"复制");
edit.add(,,,"粘贴");
edit.add(,,,"剪切");
// 添加OptionsMenu菜单项,即4,5,6,10,11,12行代码方法
/* menu.add(groupId, itemId, order, title)
* groupId:菜单项所在的组
* itemId:菜单项编号
* order:排序
* title:标题
* setIcon()方法为菜单设置图标,
(3) 覆盖onContextItemSelected()方法,响应子菜单的单击事件
//添加响应事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub //先判断组id再判断item 的id
if(item.getGroupId()==)
{
switch (item.getItemId()) {
case :
Toast.makeText(SubMenu_text.this, "点击了打开", ).show();
break;
case :
Toast.makeText(SubMenu_text.this, "点击了关闭", ).show();
break;
case :
Toast.makeText(SubMenu_text.this, "点击了删除", ).show();
break; default:
break;
}
}
else if(item.getGroupId()==)
{
switch (item.getItemId()) {
case :
Toast.makeText(SubMenu_text.this, "点击了复制", ).show();
break;
case :
Toast.makeText(SubMenu_text.this, "点击了粘贴", ).show();
break;
case :
Toast.makeText(SubMenu_text.this, "点击了剪切", ).show();
break; default:
break;
}
}
return super.onOptionsItemSelected(item);
}
完整代码:
package information; import com.example.allcode.R; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast; public class SubMenu_text extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.submenu);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
//动态添加子菜单 SubMenu file = menu.addSubMenu("文件");//子菜单的名字
SubMenu edit = menu.addSubMenu("编辑");//子菜单的名字 //给子菜单添加菜单项
file.setHeaderTitle("文件操作");//菜单标题
file.setHeaderIcon(R.drawable.icon_72); //菜单图标
file.add(, , , "打开");
file.add(, , , "关闭");
file.add(, , , "删除"); edit.setHeaderTitle("编辑操作");
edit.setHeaderIcon(R.drawable.icon_72);
edit.add(,,,"复制");
edit.add(,,,"粘贴");
edit.add(,,,"剪切"); return super.onCreateOptionsMenu(menu); } //添加响应事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub //先判断组id再判断item 的id
if(item.getGroupId()==)
{
switch (item.getItemId()) {
case :
Toast.makeText(SubMenu_text.this, "点击了打开", ).show();
break;
case :
Toast.makeText(SubMenu_text.this, "点击了关闭", ).show();
break;
case :
Toast.makeText(SubMenu_text.this, "点击了删除", ).show();
break; default:
break;
}
}
else if(item.getGroupId()==)
{
switch (item.getItemId()) {
case :
Toast.makeText(SubMenu_text.this, "点击了复制", ).show();
break;
case :
Toast.makeText(SubMenu_text.this, "点击了粘贴", ).show();
break;
case :
Toast.makeText(SubMenu_text.this, "点击了剪切", ).show();
break; default:
break;
}
}
return super.onOptionsItemSelected(item);
}
}
SubMenu_text.java
注意:为了实现界面的美化,需要给该activity一个样式
在AndroidManifest.xml文件下修改
<activity android:name="information.SubMenu_text"
android:theme="@android:style/Theme.Light.NoTitleBar">
</activity>
效果图:

安卓开发_浅谈SubMenu(子菜单)的更多相关文章
- 安卓开发_浅谈ListView(SimpleAdapter数组适配器)
安卓开发_浅谈ListView(ArrayAdapter数组适配器) 学习使用ListView组件和SimapleAdapter适配器实现一个带图标的ListView列表 总共3部分 一.MainAc ...
- 安卓开发_浅谈Android动画(四)
Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1. ValueAnimator 基本属 ...
- 安卓开发_浅谈ListView(自定义适配器)
ListView作为一个实际开发中使用率非常高的视图,一般的系统自带的适配器都无法满足开发中的需求,这时候就需要开发人员来自定义适配器使得ListView能够有一个不错的显示效果 有这样一个Demo ...
- 安卓开发_浅谈Fragment之ListFragment
ListFragment,即Fragment的一个子类,当我们用的一个Fragment只需要一个listview视图的时候使用 该类有几个特点: 1.ListFragment 本身具只有一个ListV ...
- 安卓开发_浅谈OptionsMenus(选项菜单)
Android平台下所提供的菜单大体上可分为三类:选项菜单.上下文菜单和子菜单. 当Activity在前台运行时,如果用户按下手机上的Menu键,此时就会在屏幕低端弹出相应的选项菜单.但这个功能需要开 ...
- 安卓开发_浅谈ContextMenu(上下文菜单)
长下文菜单,即长按view显示一个菜单栏 与OptionMenu的区别OptionMenu对应的是activity,一个activity只能拥有一个选项菜单ContextMenu对应的是View,每个 ...
- 安卓开发_浅谈AsyncTask
现在就来学习一下AsyncTask. 一.先介绍一下AsyncTask: 在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给 ...
- 安卓开发_浅谈Action Bar
一.Action Bar 导航栏.是3.0之后出现的. 所以注意使用的时候清单文件要设置下 android:minSdkVersion="11"(至少11) 但如果使用v4包,则不 ...
- 安卓开发_浅谈Notification(通知栏)
Notification通知栏是显示在手机状态的消息,代表一种全局效果的通知 快速创建一个Notification的步骤简单可以分为以下四步: 第一步:通过getSystemService()方法得到 ...
随机推荐
- mingW与cygwin
转自:http://hi.baidu.com/ooxxer/item/d25dccc072846a50ac00ef7e# 首先MingW和cygwin都可以用来跨平台开发. MinGW是Minima ...
- 【原】Configuring Oracle Data Guard In Physical Standby Database
作者:david_zhang@sh [转载时请以超链接形式标明文章] http://www.cnblogs.com/david-zhang-index/p/5042640.html参照文档:https ...
- main函数读取jar包外部的配置文件properties
首先,Java的main方法有个初始化入参args,如下所示: public static void main(String[] args) {} 然后,在linux下执行jar包引入外部配置文件的命 ...
- 在Visual Studio 2010中进行“项目重命名”的有效工具
地址:http://www.cnblogs.com/dudu/archive/2011/12/11/visual_studio_2010_project_rename.html 提示:这个工具一次 r ...
- NGUI Atlas
打开 Atlas Maker:NGUI -> Open -> Atlas Maker 新建一个 "Icon Atlas" 生成3个东西:
- Network - 工具列表
Tcpdump homepage - tcpdump wiki - tcpdump Wireshark homepage - wireshark wiki - wireshark Fiddler ho ...
- TogetherJS – 酷!在网站中添加在线实时协作功能
TogetherJS是一个免费.开源的 JavaScript 库,来自 Mozilla 实验室,可以实现基于 Web 的在线协作功能.把 TogetherJS 添加到您的网站中,您的用户可以在实时的互 ...
- Angular系列----AngularJS入门教程04:迭代器过滤(转载)
我们在上一步做了很多基础性的训练,所以现在我们可以来做一些简单的事情喽.我们要加入全文检索功能(没错,这个真的非常简单!).同时,我们也会写一个端到端测试,因为一个好的端到端测试可以帮上很大忙.它监视 ...
- 【C++】第1章 在VS2015中用C++编写控制台应用程序
分类:C++.VS2015 创建日期:2016-06-12 一.简介 看到不少人至今还在用VC 6.0开发工具学习C++,其实VC 6.0开发工具早就被淘汰了.这里仅介绍学习C++时推荐使用的两种开发 ...
- Redis持久化-数据丢失及解决
Redis的数据回写机制 Redis的数据回写机制分同步和异步两种, 同步回写即SAVE命令,主进程直接向磁盘回写数据.在数据大的情况下会导致系统假死很长时间,所以一般不是推荐的. 异步回写即BGSA ...