子菜单:点击子菜单项弹出悬浮悬浮窗口显示子菜单项;
介绍:子菜单提供了一种自然的组织菜单项的方式,它被大量的运用在windows和其他的OS 的GUI设计中。
Android 同样支持子菜单,通过addSubMenu(int groupId,int itemId,int order,int titleRes)方法
非常方便的创建和响应子菜单;
案例:创建子菜单,并使用图标;
注:Android中不是所有的 菜单项都能加上图标的,例如以下的菜单就是不可以的(但是这个并不意味着程序会报错,而是运行的时候图片不能显示)
* 扩展的菜单项;
* 子菜单的菜单项;
* 上下文菜单的菜单项;
java代码程序中实现子菜单:
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); } }