玩转Android---UI篇---Menu(菜单)
来源:互联网 发布:smtp协议端口 编辑:程序博客网 时间:2024/06/05 18:03
原址:http://hualang.iteye.com/category/143855
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个选项
当点击“游戏”选项的时候,就会弹出如下效果
- 玩转Android---UI篇---Menu(菜单)
- cocos2dx 玩转Menu菜单
- Android UI学习 - Menu菜单
- Android UI开发--Android中五种常用的menu(菜单)
- Android学习:用户界面UI之菜单(Menu)
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
- Android菜单(Menu)
- Android UI控件详解-Menu(菜单)
- Android系列之UI组件----Menu菜单
- Android系列之UI组件----Menu菜单
- Android系列之UI组件----Menu菜单
- Android系列之UI组件----Menu菜单
- Android UI——menu菜单
- Menu---android菜单(menu)用法
- android菜单(menu)用法
- Android菜单(Menu) - 1
- 面试中如何谈自己做过的项目
- [HDU 1712] ACboy needs your help 分组背包
- C#知识点总结系列:1、C#中Hashtable、Dictionary详解以及写入和读取对比
- CodeForces 363A - Soroban
- hdu1576(乘法逆元)
- 玩转Android---UI篇---Menu(菜单)
- Spark源码阅读笔记之MemoryStore
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
- [Leetcode 138] Copy List with Random Pointer
- oozie学习笔记
- 验证点是否在三角形内
- js选择器
- stack栈
- Num 15: NYOJ: 题目0002 : 括号配对问题 [ 栈(stack) ]