`
nullpointsun
  • 浏览: 35110 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android开发之Menu(菜单功能)学习小结

阅读更多
Android平台提供了3中菜单的实现方式,即选项菜单(OptionMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu).
总的来说,还是比较容易实现的,新手上路,学了就把大概的写下来,以备健忘吧。

1 Option Menu
这种应该是最常见的,一般手机上都会提供Menu的按钮,对应的就是这个菜单弹出。

主要步骤就是复写Activity父类中的onCreateOptionMenu(Menu menu)方法,然后通过Menu的add方法来添加菜单进去。

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(0, MENU_ITEM_COUNTER, 0, "开始");
		menu.add(0, MENU_ITEM_COUNTER + 1, 0, "暂停");
		menu.add(0, MENU_ITEM_COUNTER + 2, 0, "结束");

		return super.onCreateOptionsMenu(menu);
	}

ItemId是可以自己定义的int。
private static final int MENU_ITEM_COUNTER = Menu.FIRST;


设置好Menu后需要对每一个MenuItem进行定义处理,当用户点击是会调用onOptionsItemSelected(MenuItem item)这个方法,需要对该方法进行重写
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case MENU_ITEM_COUNTER:
			myTextView.setText("You click " + item.getTitle().toString()
					+ "Menu");
			break;
		case MENU_ITEM_COUNTER + 1:
			myTextView.setText("You click " + item.getTitle().toString()
					+ "Menu");
			break;
		case MENU_ITEM_COUNTER + 2:
			myTextView.setText("You click " + item.getTitle().toString()
					+ "Menu");
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}
这边我做了一个简单的处理,就对TextView进行了Text修改,这里可以做很多业务逻辑。
tip:Android最多支持6个MenuItem,多了以后就摆在More里面。





2.Context Menu
翻译过来就是上下文菜单,其实知道Context最好是意会搞开发的都懂的,这个Mnue还是相当有用的,比如对于文件管理器来说一些增删改查就可以摆在ContextMenu中,它其实是实现了一个用户长按点击后弹出的来一个菜单。
写了一个例子,我感觉有点糟蹋这个功能了,不过也无所谓啦,只是例子。

首先,ContextMenu在新建是会调onCreateContextMune(Menu menu)方法,我们需要对它进行复写。
@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		
		//设置面积大一点,好点唉
		myTextView.setText("*******************************\n" + "要大一些看得才清楚的"
				+ "*******************************\n");
		
		//itemId注意不要重复,否则处理起来很蛋疼
		menu.add(0, MENU_ITEM_COUNTER + 3, 0, "白色");
		menu.add(0, MENU_ITEM_COUNTER + 4, 0, "红色");
		menu.add(0, MENU_ITEM_COUNTER + 5, 0, "蓝色");

		super.onCreateContextMenu(menu, v, menuInfo);
	}

然后注册一下
	//要记得在需要的控件上注册上下文菜单
		registerForContextMenu(myTextView);


当用户点击时会调用onContextItemSelected(MenuItem item)方法,对其重写
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		
		//根据选择不同,对Text进行不同背景色的显示
		switch (item.getItemId()) {
		case MENU_ITEM_COUNTER + 3:
			myTextView.setBackgroundColor(Color.WHITE);
			break;
		case MENU_ITEM_COUNTER + 4:
			myTextView.setBackgroundColor(Color.RED);
			break;
		case MENU_ITEM_COUNTER + 5:
			myTextView.setBackgroundColor(Color.BLUE);
			break;
		default:
			break;
		}
		
		return super.onContextItemSelected(item);
	}

其实看看就知道了,两种实现Menu的方式几乎是一样的,只是在调用方法的时候不一样而已。





3 Sub Menu
个人觉得子菜单的概念应该是从属于以上两个菜单类型的,即两种菜单类型中都可以使用子菜单。
实现很简单
		//申明一个子菜单
		SubMenu subMenu = menu.addSubMenu("这个是一个子菜单");
		subMenu.add(0, MENU_ITEM_COUNTER + 6, 0, "这个是子菜单的内容");



  • 大小: 4.9 KB
  • 大小: 6.8 KB
  • 大小: 22.6 KB
  • 大小: 17.7 KB
分享到:
评论

相关推荐

    Android菜单(Menu)小结

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

    android开发揭秘PDF

    4.2.1l 菜单(Menu) 4.2.12 对话框(Dialog) 4.2.13 图片视图(ImageView) 4.2.14 带图标的按钮(ImageButton) 4.2.15 拖动效果(Gallery) 4.2.16 切换图片(hmgeSwilcher) 4.2.17 网格视图(GridView) 4.2.18 卷轴视图...

    Android menu单选菜单.zip

    在Android应用开发中,Menu是用户界面中的一个重要组成部分,它提供了在不同屏幕位置展示操作选项的方式,例如在屏幕顶部的选项栏或者下拉菜单中。本教程将详细讲解如何创建和使用Android的单选菜单(Radio Menu)。...

    《Android应用开发揭秘》附带光盘代码.

     4.2.1l 菜单(Menu)  4.2.12 对话框(Dialog)  4.2.13 图片视图(ImageView)  4.2.14 带图标的按钮(ImageButton)  4.2.15 拖动效果(Gallery)  4.2.16 切换图片(hmgeSwilcher)  4.2.17 网格视图(GridView)  ...

    《Android应用开发揭秘》源码

     4.2.1l 菜单(Menu)  4.2.12 对话框(Dialog)  4.2.13 图片视图(ImageView)  4.2.14 带图标的按钮(ImageButton)  4.2.15 拖动效果(Gallery)  4.2.16 切换图片(hmgeSwilcher)  4.2.17 网格视图(GridView)  ...

    Android应用开发揭秘pdf高清版

    《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...

    Google.Android开发入门与实战

    内容简介  《Android开发入门与实战》内容上涵盖了用Android开发的大部分场景,从Android基础介绍、... 最后,祝广大开发者的技术日益精进,早日开始Android开发之旅,赶上移动互联网的第一班车,共赢中国3G未来!

    Android应用开发揭秘

    4.2.1l 菜单(Menu) 4.2.12 对话框(Dialog) 4.2.13 图片视图(ImageView) 4.2.14 带图标的按钮(ImageButton) 4.2.15 拖动效果(Gallery) 4.2.16 切换图片(hmgeSwilcher) 4.2.17 网格视图(GridView) 4.2.18 卷轴视图...

    Google Android开发入门与实战的代码

    7.4 友好的菜单——menu介绍与实例 102 7.4.1 实例操作演示.. 103 7.4.2 实例编程实现 103 7.5 Android应用的灵魂——Intent和Activity介绍与实例 106 7.5.1 实例操作演示 106 7.5.2 实例编程实现 ...

    实验一Android开发环境搭建与Helloworld.doc

    实验小结中提到,该实验的核心是熟悉Android开发环境,理解应用开发流程,并生成一个简单的Android应用程序框架。通过这个实验,学习者能够对Android应用的构建有初步认识。 实验二则侧重于Android UI设计,目标是...

    Android典型技术模块开发详解

    目录 第一篇 Android开发初步 第1章 Android初识 1.1 Android简介 1.1.1 认识Android 1.1.2 Android系统框架 1.1.3 应用程序框架 1.2 Eclipse开发环境 1.2.1 安装ADT插件 1.2.2 安装SDK ...16.7 本章小结

    智能家居系统 菜单Menu.doc

    课堂小结时,可以回顾菜单的种类和显示形式,强调菜单在智能家居系统中的关键作用,以及理解和掌握菜单设计原则对于提升用户体验的重要性。同时,也可以引导学生思考未来智能家居系统可能的发展趋势,如语音菜单、...

    疯狂Android讲义源码

     1.7 本章小结 33  第2章 Android应用的界面编程 35  2.1 界面编程与视图(View)组件 36  2.1.1 视图组件与容器组件 36  2.1.2 使用XML布局文件控制UI  界面 40  2.1.3 在代码中控制UI界面 41  2.1.4 使用...

    Android编程入门很简单.(清华出版.王勇).part1

    这必将使得阅读本书的读者少走弯路,快速上手,从而建立学习Android开发的信心。本书配带1张光盘,收录了重点内容的教学视频(8.7小时多媒体教学视频)和本书涉及的所有源代码。 目录: 第1篇入门必备 第1章初识...

    Android编程入门很简单.(清华出版.王勇).part2

    这必将使得阅读本书的读者少走弯路,快速上手,从而建立学习Android开发的信心。本书配带1张光盘,收录了重点内容的教学视频(8.7小时多媒体教学视频)和本书涉及的所有源代码。 目录: 第1篇入门必备 第1章初识...

    智能家居系统 选项菜单OptionMenu.doc

    #### 四、选项菜单的实现步骤小结 1. **定义菜单文件**:在`res/menu/`目录下创建XML文件。 2. **加载菜单文件**:在MainActivity中重写`onCreateOptionsMenu`方法加载菜单文件。 3. **处理选择事件**:通过重写`...

    让AndroidX86竖屏显示

    #### 小结 通过上述步骤,我们成功地将AndroidX86从默认的横屏显示模式改为竖屏显示模式。这一改变对于开发者来说尤为有用,因为它可以帮助他们在进行应用程序测试和调试时获得更佳的视觉体验。此外,对于那些想要在...

Global site tag (gtag.js) - Google Analytics