`

玩转Android---UI篇---Menu(菜单)

阅读更多

Android系统里面有3种类型的菜单:options menu,context menu,sub menu。 

options menu  : 按Menu键就会在屏幕下面显示,一个弹出的菜单。 
    它包括两种菜单项: 
         因为options menu在屏幕底部最多只能显示6个菜单项,这些菜单项称为icon menu,icon menu只支持文字(title) 以及icon,可以设置快捷键,不支持checkbox以及radio控件,所以不能设置checkable选项。 
         而多于6的菜单项会以“more” icon menu来调出,称为expanded menu。它不支持icon,其他的特性都和icon menu一样! 

在Activity里面,用options menu的使用方法如下: 

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0, 1, 1, R.string.exit);

menu.add(0, 2, 2, R.string.about);

return super.onCreateOptionsMenu(menu);

}

      创建options menu,这个函数只会在menu第一次显示时调用。 

 

public boolean onOptionsItemSelected(MenuItem item) {

if(item.getItemId()==1)

{

finish();

}else if(item.getItemId()==2)

{

Toast toast=Toast.makeText(this, "这是个Menu菜单的练习", Toast.LENGTH_SHORT);

toast.show();

}

return super.onOptionsItemSelected(item);

} 
     onOptionsItemSelected (MenuItem item) 处理选中的菜单项。

 

实例如下:

MenuTest.java

package org.hualang.menu;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MenuTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
    }

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		menu.add(0, 1, 1, R.string.exit);
		menu.add(0, 2, 2, R.string.about);
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		if(item.getItemId()==1)
		{
			finish();
		}else if(item.getItemId()==2)
		{
			Toast toast=Toast.makeText(this, "这是个Menu菜单的练习", Toast.LENGTH_SHORT);
			toast.show();
		}
		return super.onOptionsItemSelected(item);
	}
    
}

 String.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MenuTest!</string>
    <string name="app_name">MenuTest</string>
    <string name="exit">退出</string>
    <string name="about">关于</string>
</resources>

 main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Menu菜单实例"
    />
</LinearLayout>

 运行结果如下:点击Menu按钮



 当点击退出时候,就会退出程序,当点击关于的时候会弹出一个Toast


 

sub menu 
    上面的menu都可以加入子菜单,但子菜单不能嵌套子菜单,这意味着在Android系统,菜单只有两层,设计时需要注意的!同时子菜单不支持icon。 所以这个时候可以在option menu中加入可以嵌套的菜单 sub menu

只需要在刚才的代码中的onCreateOptionMenu中加入

@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		menu.add(0, 1, 1, R.string.exit);
		menu.add(0, 2, 2, R.string.about);
		SubMenu subMenu = menu.addSubMenu(1, 100, 100, "游戏");
		subMenu.add(2, 3, 3, "铁拳");        
		subMenu.add(2, 4, 4, "流行蝴蝶剑");
		return super.onCreateOptionsMenu(menu);
	}

 再次运行后,点击MENU按钮,会弹出3个选项



 当点击“游戏”选项的时候,就会弹出如下效果


  • 大小: 10.6 KB
  • 大小: 11.5 KB
  • 大小: 10.7 KB
  • 大小: 13.8 KB
分享到:
评论
1 楼 dalianlgw 2012-03-06  
很详尽,很具体!受用了

相关推荐

    Android---UI篇

    •Android---UI篇---Tab Layout(选项卡布局) • •Andorid---UI篇---TableLayout(表格布局) • •Android---UI篇---RelativeLayout(相对布局) • •Android---UI篇---GridView...•Android---UI篇---Menu(菜单)

    Android---UI篇---Menu(菜单)

    在Android开发中,UI设计是至关重要的一环,而Menu(菜单)则是提升用户体验的重要组成部分。本文将详细探讨Android系统中的三种菜单类型:Options Menu、Context Menu和SubMenu。 首先,我们来了解一下Options ...

    Android-awesome-android-ui.zip

    Android-awesome-android-ui.zip,一份精选的android ui/ux库列表,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    android-snake-menu-炫酷动画菜单.zip

    《Android Snake Menu:炫酷动画菜单的探索与实践》 在Android应用开发中,吸引用户注意力并提升用户体验的UI设计至关重要。"android-snake-menu-炫酷动画菜单"是一个开源项目,旨在为开发者提供一种创新的菜单展示...

    Android-android-ui-animation-components-and-libraries.zip

    Android-android-ui-animation-components-and-libraries.zip,android ui库、组件和动画作者@ramotion-https://github.com/ramotion/swift-ui-animation-components-libraries,安卓系统是谷歌在2008年设计和制造的。...

    Side-Menu.Android-master.rar

    【标题】"Side-Menu.Android-master.rar"是一个与Android UI设计相关的开源项目,它在GitHub上可供开发者们学习和使用。这个压缩包包含了名为"Side-Menu.Android-master"的源代码,通常这样的命名方式表示这是一个...

    android-26 sdk下载

    Android SDK(Software Development Kit)是开发Android应用必不可少的工具集,它包含了编译、调试、模拟器、性能分析等一系列开发者需要的组件。Android-26指的是Android 8.0 Oreo版本,这是Google在2017年发布的一...

    android-support-v4和android-support-v7

    ActionBar是Android 3.0引入的一个重要的UI元素,它提供了应用的导航和操作选项。在早期版本的Android系统中,没有内置的ActionBar,因此`android-support-v7-appcompat`库通过自定义视图和主题实现了对ActionBar的...

    android-support-v4.jar最新版

    - **Fragment**: 这是Android开发中的重要组成部分,允许在活动中创建可重用的、独立的UI块。在Android 3.0(API级别11)及以上版本中引入,但v4库使其可以在低至Android 1.6(API级别4)的版本上使用。 - **Loader...

    android-android-ui-design-patterns.rar_Android UI Design_Android

    "android-android-ui-design-patterns.rar"是一个压缩包,包含了关于Android UI设计模式的重要资料,特别是对于GUI(图形用户界面)设计者来说,这份资源极其有价值。 Android UI设计遵循一套规范和最佳实践,旨在...

    Android--开发--奇艺高清UI界面源代码.rar

    Android--开发--奇艺高清UI界面源代码

    Side-Menu.Android-master.zip

    Side-Menu.Android-master.zip 是一个Android开发相关的压缩包,它包含了一个实现侧滑菜单的开源项目。这个项目由知名UI设计公司Yalantis创建,旨在为Android应用提供一种美观且功能丰富的侧滑菜单解决方案。侧滑...

    android-menudrawer-master menu drawer 滑动式菜单

    通过深入研究`android-menudrawer-master`项目的源代码,开发者不仅可以了解滑动菜单的实现原理,还能学习到如何优化Android UI组件的性能和用户体验。这个项目对于那些希望在自己的应用中集成滑动菜单的开发者来说...

    android-support-v7.jar

    `android-support-v7-appcompat`库支持在ActionBar或ToolBar中显示菜单和选项项,同时提供了对Overflow Menu(更多选项)的支持,即使在没有硬件菜单键的设备上也能正常使用。 六、颜色选择器 库中还包括一个颜色...

    android-ui-test-runner-master.rar

    《Android UI 测试框架详解——以android-ui-test-runner-master为例》 在移动应用开发中,UI测试是确保产品质量的关键环节。Android平台提供了多种测试工具,其中`android-ui-test-runner`是一个用于自动化测试...

    android-support-v7-appcompat.jar和android-support-v4.jar包

    在Android开发中,`android-support-v7-appcompat.jar`和`android-support-v4.jar`是两个非常关键的库文件,它们提供了对早期Android版本的兼容性支持,以及一系列额外的功能和组件。这两个库文件属于Google的...

    Android----窗口背景&UI性能

    这篇博客“Android----窗口背景&UI性能”深入探讨了这两个方面,作者通过源码分析和实用工具的应用,为开发者提供了宝贵的知识和实践指导。 首先,窗口背景在Android中扮演着重要的角色。每个Activity都有一个与之...

    SSM-ZTE-AndroidUI-SDS-1.0 软件文档规范2

    《SSM-ZTE-AndroidUI-SDS-1.0 软件文档规范2》是一份关于中兴Android系统界面软件设计与开发项目的详细文档规范,旨在为项目的开发过程提供标准化的指导。该规范主要关注软件文档的编制、管理和使用,确保软件开发的...

    Android-circular-menu-example-源码.rar

    "Android-circular-menu-example-源码.rar" 这个标题表明这是一个关于Android平台的项目,具体是一个圆形菜单的示例代码。"源码"一词提示我们,我们将探讨的是开发者级别的内容,涉及到编程语言、设计模式以及...

    android-android-ui-design-patterns.zip_android

    "android-android-ui-design-patterns.zip"压缩包中的"android-android-ui-design-patterns.pdf"文件很可能详细介绍了Android平台上的UI设计模式。这里我们将探讨一些关键的Android UI设计模式及其应用。 1. **单...

Global site tag (gtag.js) - Google Analytics