Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 737|回复: 0

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

[复制链接]

该用户从未签到

发表于 2011-10-24 15:12:46 | 显示全部楼层 |阅读模式
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

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

Java代码
<?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

Java代码
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    androidrientation="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中加入

Java代码
@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个选项



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

回复

使用道具 举报

该用户从未签到

发表于 2011-10-24 15:12:50 | 显示全部楼层

Re:Android---UI

挺好的,顶一下了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 15:12:54 | 显示全部楼层

Re:Android---UI

真好呀~~给你顶一下.~~我是新手很适合我~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 14:20 , Processed in 0.385688 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表