安卓开发_浅谈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()方法得到 ...
随机推荐
- java面试欠缺知识点总结
针对最近面试被问到的问题,总结自己欠缺的知识点,并要在接下来的1年内加强这些知识: Java方面:反射.线程concurrent包: Spring方面:Ioc和Aop.事务: 持久化框架:设计并实现分 ...
- Objective-C Polymorphism
#import <Foundation/Foundation.h> @interface Shape : NSObject { CGFloat area; } -(void)printAr ...
- udp穿透简单讲解和实现(Java)
在上一小节中了解到了通过浏览器自带的Webrtc功能来实现P2P视频聊天.在HTML5还没有普及和制定Webrtc标准的前提下,如果要在手机里进行视频实时对话等包括其他功能的话,还是要自己实现,还比较 ...
- zepto - push
var arr = ['1', '2', '3', '4']; arr.push('qwe'); console.log(arr);
- 再次讲解js中的回收机制是怎么一回事。
在前几天的一篇闭包文章中我们简单的介绍了一下闭包,但是并没有深入的讲解,因为闭包涉及的知识点比较多,为了能够更好的理解闭包,今天讲解一下关于js中的回收机制. 在初识闭包一文中我说过js中有回收机制这 ...
- Linux命令:ps / top
简介:ps - report a snapshot of the current processes. 用途:获取当前时刻程序运行状态 概要:ps [options] 类型:ps is hashed ...
- Java异步回调
作者:禅楼望月(http://www.cnblogs.com/yaoyinglong) 1.开始讲故事: 午饭的时候到了,可是天气太冷,根本不想出办公室的门,于是你拨通了某饭店的订餐电话“喂!你好 ...
- Javascript起源...
Javascript的设计思路是这样的: (1)借鉴C语言的基本语法: (2)借鉴Java语言的数据类型和内存管理: (3)借鉴Scheme语言,将函数提升到"第一等公民"(fir ...
- C#语法糖之 cache操作类 asp.net
因为考虑到我下面我将写session cookies 等 操作类 ,与cache具有共性. 所以都统一继承了IHttpStorageObject abstract class 来保函数风格的统一 , ...
- 一个android应用开发的感悟
对于客户端的开发,以我个人现在的水准,很难进行一个系统的讲解,只能分享下遇到的几个问题点好了! 1:对于tabhost的使用,这个东西真的是过时了:第一个版本,我是用的tabhost确实是很难用,不过 ...