Android 之Sub Menu案例

[size=small][color=green][b]
子菜单:点击子菜单项弹出悬浮悬浮窗口显示子菜单项;

介绍:子菜单提供了一种自然的组织菜单项的方式,它被大量的运用在windows和其他的OS 的GUI设计中。
Android 同样支持子菜单,通过addSubMenu(int groupId,int itemId,int order,int titleRes)方法
非常方便的创建和响应子菜单;

案例:创建子菜单,并使用图标;
注:Android中不是所有的 菜单项都能加上图标的,例如以下的菜单就是不可以的(但是这个并不意味着程序会报错,而是运行的时候图片不能显示)
* 扩展的菜单项;
* 子菜单的菜单项;
* 上下文菜单的菜单项;
java代码程序中实现子菜单:[/b][/color][/size]
package com.example.menu;

import com.example.menu.R.menu;

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 Sub_menu extends Activity {


protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.menu_sub);

/* 获取组件对象,实现上下文菜单的测试 */
}

public boolean onCreateOptionsMenu(Menu menu) {

/* 使用一个基数来保存变量 */
int base = menu.FIRST;

/* 创建一个子菜单 :文件 */
SubMenu file = menu.addSubMenu(base, base+1, base+1, "文件");

/* 给子菜单添加菜单项 *//* 文件这个子菜单的菜单项包含:打开 关闭 保存 */
file.add(base, base+2, base+2, "打开");
file.add(base, base+3, base+3, "关闭");
file.add(base, base+4, base+4, "保存");

/* 设置file子菜单的图标 */
file.setIcon(R.drawable.a);

/* 创建第二个子菜单 :编辑 */
SubMenu edit = menu.addSubMenu(base, base+1, base+1, "编辑");

/* 给子菜单添加菜单项 *//* 编辑 这个子菜单包含:复制 剪切 粘贴 */
edit.add(base+1, base+2, base+2, "复制");
edit.add(base+1, base+3, base+3, "剪切");
edit.add(base+1, base+4, base+4, "粘贴");
/* 添加图标 */
edit.setIcon(R.drawable.b);

/* 创建第三个子菜单:选项 */
SubMenu option = menu.addSubMenu(base, base+1, base+1, "选项");

/* 对子菜单添加菜单选项 *//* 选项的子菜单包含:显示设置 网络设置 安全设置 */
option.setIcon(R.drawable.d);

return true;
}

/* 消息回用,用户编写事件 */
/* 注:子菜单选项也具有ID,且应该保持唯一,item接收到的是任何被点击项的ID,包含子菜单选项或子菜单项 */
public boolean onOptionsItemSelected(MenuItem item) {
/* 用于测试用户点击的选项(不管是子菜单选项或者是子菜单项) */
Toast.makeText(Sub_menu.this, "项ID:"+item.getItemId()+" 组ID:"+item.getGroupId()+" 位置ID:"+item.getOrder(), 8000).show();
return super.onOptionsItemSelected(item);
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值