Android 之Sub Menu案例


子菜单:点击子菜单项弹出悬浮悬浮窗口显示子菜单项;

介绍:子菜单提供了一种自然的组织菜单项的方式,它被大量的运用在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); 
	}

}

你可能感兴趣的:(android,SubMenu)