`
1140566087
  • 浏览: 548841 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18109
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:309945
Group-logo
J2ME 基础学习课程集
浏览量:18087
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17223
社区版块
存档分类
最新评论

Android 之 上下文菜单、选项菜单、子菜单

阅读更多
菜单

OptionMenu ContextMenu SubMenu;


1、选项菜单:OptionMenu

注意:一般的选项菜单:最多可以有两行,每行3个菜单项,当多余 6 个的时候或出现more,点击显示;
创建:重写 onCreateOptionsMenu() 方法;
事件:重写onOptionsItemSelected(); 方法

2、上下文菜单:ContextMenu
说明:选项菜单服务于Activity,上下文菜单是注册到某一个View对象上;
提示:可以为ContextMenu指定标题和图标,但菜单选项不能附带图标;
创建:重写onCreateContextMenu();
事件:重写onContextItemSelected();
注册:registerForContextMenu();

3、子菜单:SubMenu
说明:子菜单不能嵌套子菜单,即android中菜单只有两层;
提示:子菜单项不支持显示图标
创建:使用addSubMenu(); 添加具有子菜单的菜单项




事例:代码中实现各种菜单

package com.example.menu;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

	private RelativeLayout myLayout; // 声明布局属性

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		myLayout = (RelativeLayout) findViewById(R.id.myLayout); // 获取对象
		registerForContextMenu(myLayout); // 注册上下文菜单

	}

	/*********************************** 选项菜单 Start OptionMenu ************************************************/

	// 选项菜单的实现
	public boolean onCreateOptionsMenu(Menu menu) {

		/*
		 * 参数说明: 1:组标识 2:菜单项ID ,唯一标识 3: 菜单项摆放的顺序 4:菜单上显示的文字
		 */
		MenuItem addMenuItem = menu.add(1, 0, 0, "添加"); // 添加菜单项
		addMenuItem.setIcon(R.drawable.icon_download2); // 设置图标
		MenuItem uppMenuItem = menu.add(1, 1, 1, "修改");
		uppMenuItem.setIcon(R.drawable.icon_download2);

		/* 子菜单实现 */
		SubMenu delSubMenu = menu.addSubMenu(1, 1, 1, "删除"); // 给menu添加子菜单
		delSubMenu.setHeaderIcon(R.drawable.icon_download2); // 设置子菜单单出框图标
		delSubMenu.setHeaderTitle("删除");
		delSubMenu.setIcon(R.drawable.icon_download2); // 创建子菜单的图标
		delSubMenu.add(2, 11, 11, "直接"); // 为子菜单添加二级菜单
		delSubMenu.add(2, 12, 12, "间接");

		SubMenu showSubMenu = menu.addSubMenu(1, 2, 2, "显示"); // 添加子菜单
		showSubMenu.setIcon(R.drawable.icon_download2); // 设置子菜单图标
		showSubMenu.setHeaderIcon(R.drawable.icon_download2); // 设置弹出框图标
		showSubMenu.setHeaderTitle("显示"); // 设置弹出框标题
		showSubMenu.add(2, 21, 21, "全显");
		showSubMenu.add(2, 21, 22, "慢显");

		return true;
	}

	// 选项菜单选择事件
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case 0:
			Toast.makeText(MainActivity.this, "选中了" + item.getTitle() + "菜单",
					Toast.LENGTH_LONG).show();
			break;

		case 1:
			Toast.makeText(MainActivity.this, "选中了" + item.getTitle() + "菜单",
					Toast.LENGTH_LONG).show();
			break;
		default:
			Toast.makeText(MainActivity.this, "选中了" + item.getTitle() + "菜单",
					Toast.LENGTH_LONG).show();
			break;
		}
		return super.onOptionsItemSelected(item);
	}

	/**
	 * 选项菜单被关闭时触发该方法: 1、back 按钮被点击 2、menu 按钮再次按下 3、选择了某一个菜单项
	 */
	public void onOptionsMenuClosed(Menu menu) {
		super.onOptionsMenuClosed(menu);
		Toast.makeText(MainActivity.this, "选项菜单被关闭了...", Toast.LENGTH_LONG)
				.show();
	}

	/**
	 * 选项菜单显示之前调用
	 * 
	 * @return false :此方法把menu点击的动作屏蔽了,onCreateOptionsMenu 方法不会调用
	 */
	public boolean onPrepareOptionsMenu(Menu menu) {
		Toast.makeText(MainActivity.this, "onPrepaareOptionsMenu()方法被调用...",
				Toast.LENGTH_LONG).show();
		return super.onPrepareOptionsMenu(menu);
	}

	/***************************************** End OptionMenu **************************************************************/

	/***************************************** 上下文菜单 Start ContextMenu **************************************************/

	// 创建上下文菜单
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		super.onCreateContextMenu(menu, v, menuInfo);
		menu.setHeaderIcon(R.drawable.icon_download2); // 设置上下文菜单标题的图标
		menu.setHeaderTitle("设置背景颜色"); // 设置上下文菜单的标题
		MenuItem oneMenuItem = menu.add(Menu.NONE, 0, 0, "红色"); // 添加菜单项 一
		MenuItem twoMenuItem = menu.add(Menu.NONE, 1, 1, "黑色"); // 添加菜单项 二

	}

	// 上下文菜单选择事件
	public boolean onContextItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case 0:
			Toast.makeText(MainActivity.this, "选择了" + item.getTitle() + "菜单",
					Toast.LENGTH_LONG).show();
			myLayout.setBackgroundColor(getResources().getColor(R.color.back)); // 设置颜色
			break;

		case 1:
			Toast.makeText(MainActivity.this, "选择了" + item.getTitle() + "菜单",
					Toast.LENGTH_LONG).show();
			myLayout.setBackgroundColor(getResources().getColor(R.color.red));// 设置颜色
			break;
		}
		return super.onContextItemSelected(item);
	}

	// 上下文菜单关闭时调用..
	public void onContextMenuClosed(Menu menu) {
		super.onContextMenuClosed(menu);
		Toast.makeText(MainActivity.this, "上下文菜单关闭...", Toast.LENGTH_LONG)
				.show();
	}

	/***************************************** End ContextMenu ***********************************************************/

	/***************************************** 子菜单 Start SubMenu ********************************************************/
	// 结合选项菜单或者上下文菜单使用,本次结合上选项菜单实现子菜单....
	/***************************************** End SubMenu ****************************************************************/

}














分享到:
评论

相关推荐

    菜单,包括选项菜单,子菜单,上下文菜单

    菜单是Android 系统中重要的用户接口,包括选项菜单,子菜单,上下文菜单

    菜单 选项菜单 子菜单 上下文菜单

    该案例包含了菜单Menu的三种菜单类型,附有对应的代码和效果图!

    Android的子菜单

    我试了还是什么,因为我了解到,有就是一个子菜单,除了上下文菜单,当你学习Android的工程师资格认证考试的选项菜单。 下面是样本的源代码。 这是因为菜单的简单的ID如果您单击菜单上只显示在LogCat中。

    android开发中常用的3中菜单

    简单介绍了android移动开发中常用的3中菜单:1 选项菜单 2 子菜单 3 上下文菜单

    Android菜单(Menu)小结

    菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu).参考博客:...

    Android选项菜单用法实例分析

    Android平台下所提供的菜单大体上可分为三类:选项菜单、上下文菜单和子菜单。 当Activity在前台运行时,如果用户按下手机上的Menu键,此时就会在屏幕低端弹出相应的选项菜单。但这个功能需要开发人员编程来实现的,...

    Android菜单详解

    选项菜单:最常规的菜单,android中把它叫做option menu 子菜单:android中点击子菜单将弹出悬浮窗口显示子菜单项。...上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单

    android 菜单演示

    菜单的一个演示例子。只是简单演示,3个菜单,选项菜单 上下文菜单、子菜单

    Android之Menu(博客源码)

    主要分为三个部分:1.选项菜单OptionMenu;2.上下文菜单ContextMenu;3.子菜单SubMenu;博客地址:http://blog.csdn.net/pfe_nova/article/details/38620411

    Android三种菜单实例分析

    Android的菜单分为三种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu) 一.选项菜单 当用户单击设备上的菜单按钮(Menu),触发事件弹出的菜单就是选项菜单。选项菜单最多只有六个,超过...

    Android编程之菜单的实现方法实例详解

    以上三种菜单也就是我们经常所说的:选项菜单,上下文菜单和子菜单。 一.上下文菜单 1. 实现onCreateContextMenu即可创建该菜单 @Override public void onCreateContextMenu(ContextMenu menu, View v, C

    Android开发之menu菜单

    Android系统里面有四种类型的菜单:options menu(选项菜单),context menu(上下文菜单),sub menu(子菜单),Popup menu(弹出菜单)。 首先说 选项菜单(OptionsMenu) 一、方法介绍:  public ...

    属于自己的常见Android选项菜单样式集合

    菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),今天这讲是OptionsMenu  一、概述 public ...

    Android Menu详解及示例代码

    菜单是用户界面中最常见的元素,使用也非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),下面分别举例说明。 一、选项菜单 OptionsMenu ...

    如何使用baseAdapter

    主要实现listview的灵活性。在一种情况下,item需要显示全部的布局,并且可以有点击事件,在另一种情况下,item不可以显示进入子菜单的箭头图片,也不可以有点击事件。

    adroid菜单

    adroid菜单摘要: 菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),今天这讲是OptionsMenu

    android menu 开发

    选项菜单(OptionsMenu) 上下文菜单(ContextMenu) 子菜单(SubMenu) 弹出菜单(Popup)

Global site tag (gtag.js) - Google Analytics