子菜单:点击子菜单项弹出悬浮悬浮窗口显示子菜单项;
介绍:子菜单提供了一种自然的组织菜单项的方式,它被大量的运用在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);
}
}