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
分享到:
相关推荐
•Android---UI篇---Tab Layout(选项卡布局) • •Andorid---UI篇---TableLayout(表格布局) • •Android---UI篇---RelativeLayout(相对布局) • •Android---UI篇---GridView...•Android---UI篇---Menu(菜单)
在Android开发中,UI设计是至关重要的一环,而Menu(菜单)则是提升用户体验的重要组成部分。本文将详细探讨Android系统中的三种菜单类型:Options Menu、Context Menu和SubMenu。 首先,我们来了解一下Options ...
Android-awesome-android-ui.zip,一份精选的android ui/ux库列表,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
《Android Snake Menu:炫酷动画菜单的探索与实践》 在Android应用开发中,吸引用户注意力并提升用户体验的UI设计至关重要。"android-snake-menu-炫酷动画菜单"是一个开源项目,旨在为开发者提供一种创新的菜单展示...
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"是一个与Android UI设计相关的开源项目,它在GitHub上可供开发者们学习和使用。这个压缩包包含了名为"Side-Menu.Android-master"的源代码,通常这样的命名方式表示这是一个...
Android SDK(Software Development Kit)是开发Android应用必不可少的工具集,它包含了编译、调试、模拟器、性能分析等一系列开发者需要的组件。Android-26指的是Android 8.0 Oreo版本,这是Google在2017年发布的一...
ActionBar是Android 3.0引入的一个重要的UI元素,它提供了应用的导航和操作选项。在早期版本的Android系统中,没有内置的ActionBar,因此`android-support-v7-appcompat`库通过自定义视图和主题实现了对ActionBar的...
- **Fragment**: 这是Android开发中的重要组成部分,允许在活动中创建可重用的、独立的UI块。在Android 3.0(API级别11)及以上版本中引入,但v4库使其可以在低至Android 1.6(API级别4)的版本上使用。 - **Loader...
"android-android-ui-design-patterns.rar"是一个压缩包,包含了关于Android UI设计模式的重要资料,特别是对于GUI(图形用户界面)设计者来说,这份资源极其有价值。 Android UI设计遵循一套规范和最佳实践,旨在...
Android--开发--奇艺高清UI界面源代码
Side-Menu.Android-master.zip 是一个Android开发相关的压缩包,它包含了一个实现侧滑菜单的开源项目。这个项目由知名UI设计公司Yalantis创建,旨在为Android应用提供一种美观且功能丰富的侧滑菜单解决方案。侧滑...
通过深入研究`android-menudrawer-master`项目的源代码,开发者不仅可以了解滑动菜单的实现原理,还能学习到如何优化Android UI组件的性能和用户体验。这个项目对于那些希望在自己的应用中集成滑动菜单的开发者来说...
`android-support-v7-appcompat`库支持在ActionBar或ToolBar中显示菜单和选项项,同时提供了对Overflow Menu(更多选项)的支持,即使在没有硬件菜单键的设备上也能正常使用。 六、颜色选择器 库中还包括一个颜色...
《Android UI 测试框架详解——以android-ui-test-runner-master为例》 在移动应用开发中,UI测试是确保产品质量的关键环节。Android平台提供了多种测试工具,其中`android-ui-test-runner`是一个用于自动化测试...
在Android开发中,`android-support-v7-appcompat.jar`和`android-support-v4.jar`是两个非常关键的库文件,它们提供了对早期Android版本的兼容性支持,以及一系列额外的功能和组件。这两个库文件属于Google的...
这篇博客“Android----窗口背景&UI性能”深入探讨了这两个方面,作者通过源码分析和实用工具的应用,为开发者提供了宝贵的知识和实践指导。 首先,窗口背景在Android中扮演着重要的角色。每个Activity都有一个与之...
《SSM-ZTE-AndroidUI-SDS-1.0 软件文档规范2》是一份关于中兴Android系统界面软件设计与开发项目的详细文档规范,旨在为项目的开发过程提供标准化的指导。该规范主要关注软件文档的编制、管理和使用,确保软件开发的...
"Android-circular-menu-example-源码.rar" 这个标题表明这是一个关于Android平台的项目,具体是一个圆形菜单的示例代码。"源码"一词提示我们,我们将探讨的是开发者级别的内容,涉及到编程语言、设计模式以及...
"android-android-ui-design-patterns.zip"压缩包中的"android-android-ui-design-patterns.pdf"文件很可能详细介绍了Android平台上的UI设计模式。这里我们将探讨一些关键的Android UI设计模式及其应用。 1. **单...