`

android 三类菜单(Option) (Context) (SubMenu)学习

 
阅读更多
在Android系统中,菜单可以分为三类:选项菜单(Option Menu),上下文菜单(Context Menu)以及子菜单(Sub Menu)

一.选项菜单(Option Menu)

创建选项菜单的步骤:
1.覆盖Activity的onCreateOptionMenu(Menu menu)方法,当菜单第一次被打开时调用
2.调用Menu的add( )方法添加菜单项(MenuItem),同时可以调用MenuItem的setIcon( )方法来为菜单项设置图标
3.当菜单项(MenuItem)被选择时,覆盖Activity的onOptionsItemSelected(MenuItem item)来响应事件
选项菜单的实例:

package com.android.menu.activity;  
 
import android.app.Activity;  
import android.os.Bundle;  
import android.view.Menu;  
import android.view.MenuItem;  
 
public class OptionMenuActivity extends Activity {  
 
    //声明菜单项常量  
    private static final int ITEM_1 = Menu.FIRST;  
    private static final int ITEM_2 = Menu.FIRST+1;  
    private static final int ITEM_3 = Menu.FIRST+2;  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
    }  
 
    //覆盖onCreateOptionsMenu(Menu menu)来添加菜单项  
    public boolean onCreateOptionsMenu(Menu menu) {  
        //android.R使用的是系统自带的图标  
        menu.add(0, ITEM_1, 0, "开始").setIcon(android.R.drawable.ic_media_play);  
        menu.add(0, ITEM_2, 0, "帮助").setIcon(android.R.drawable.ic_menu_help);  
        menu.add(0, ITEM_3, 0, "退出").setIcon(android.R.drawable.ic_menu_close_clear_cancel);  
        return true;  
    }  
      
   //覆盖onOptionsItemSelected(MenuItem item)来响应菜单选项被单击事件  
    public boolean onOptionsItemSelected(MenuItem item) {  
        switch (item.getItemId()) {  
        case ITEM_1:  
            setTitle("开始游戏!");  
            break;  
        case ITEM_2:  
            setTitle("查看帮助!");  
            break;  
        case ITEM_3:  
            setTitle("退出游戏!");  
            break;  
        }  
        return true;  
    }  
} 


效果图:



二.上下文菜单(Context Menu)

创建上下文菜单的步骤:
1.覆盖Activity的onCreateContextMenu(Menu menu)方法,调用Menu的add( )方法添加菜单项(MenuItem).
2.覆盖Activity的oonContextItemSelected(MenuItem item)来响应事件
3.调用registerForContextMenu( )方法来为视图注册上下文菜单
上下文菜单的实例(按住“测试Context Menu”2秒,就会出现上下文菜单):

package com.android.context.activity;  
 
import android.app.Activity;  
import android.graphics.Color;  
import android.os.Bundle;  
import android.view.ContextMenu;  
import android.view.Menu;  
import android.view.MenuItem;  
import android.view.View;  
import android.view.ContextMenu.ContextMenuInfo;  
import android.widget.TextView;  
 
public class ContextMenuActivity extends Activity {  
    private static final int ITME_1 = Menu.FIRST;  
    private static final int ITME_2 = Menu.FIRST+1;  
    private static final int ITME_3 = Menu.FIRST+2;  
    private TextView text;  
      
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        text = (TextView)findViewById(R.id.TextView_1);  
        //调用registerForContextMenu()来注册上下文菜单  
        registerForContextMenu(text);  
    }  
 
    @Override 
    public void onCreateContextMenu(ContextMenu menu, View v,  
            ContextMenuInfo menuInfo) {  
        menu.add(0, ITME_1, 0, "红色背景");  
        menu.add(0, ITME_2, 0, "蓝色背景");  
        menu.add(0, ITME_3, 0, "白色背景");  
    }  
      
    @Override 
    public boolean onContextItemSelected(MenuItem item) {  
        switch (item.getItemId()) {  
        case ITME_1:  
            //设置TextView的背景颜色  
            text.setBackgroundColor(Color.RED);  
            break;  
        case ITME_2:  
            text.setBackgroundColor(Color.BLUE);  
            break;  
        case ITME_3:  
            text.setBackgroundColor(Color.WHITE);  
            break;  
        }  
        return true;  
    }  
} 


效果图:



三.子菜单(Sub Menu)

创建子菜单的步骤:
1.覆盖Activity的onCreateOptionMenu(Menu menu)方法,调用Menu的addSubMenu( )方法来添加子菜单(Sub Menu)
2.调用SubMenu的add( )方法来添加子菜单(Sub Menu)
3.覆盖onContextItemSelect( )方法来响应菜单单击事件
子菜单的实例:

package com.android.sub.activity;  
 
import android.app.Activity;  
import android.os.Bundle;  
import android.view.Menu;  
import android.view.MenuItem;  
import android.view.SubMenu;  
 
public class SubMenuActivity extends Activity {  
      
    private static final int ITEM_1 = Menu.FIRST;  
    private static final int ITEM_2 = Menu.FIRST+1;  
      
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
    }  
 
    //覆盖onCreateOptionsMenu(Menu menu)方法,添加子菜单项  
    public boolean onCreateOptionsMenu(Menu menu) {  
        SubMenu ad = menu.addSubMenu("添加").setIcon(android.R.drawable.ic_menu_add);  
        SubMenu re = menu.addSubMenu("关闭").setIcon(android.R.drawable.ic_menu_close_clear_cancel);  
        ad.add(0, ITEM_1, 0, "文件");  
        ad.add(0, ITEM_2, 0, "图片");  
        return true;  
    }  
      
   //覆盖onOptionsItemSelected(MenuItem item),响应菜单选项被单击事件  
    public boolean onOptionsItemSelected(MenuItem item) {  
        switch (item.getItemId()) {  
        case ITEM_1:  
            setTitle("添加文件!");  
            break;  
        case ITEM_2:  
            setTitle("添加图片!");  
            break;  
        }  
        return true;  
    }  
} 


效果图:



注:menu.add的方法中的参数:
1.int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。可以用到的方法有:
removeGroup(id)
setGroupCheckable(id, checkable, exclusive)
setGroupEnabled(id,boolean enabled)
setGroupVisible(id,visible)
2.int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个item ID对应一个Menu中的选项。在后面使用菜单的时候,就是靠这个item ID来判断,你选中的是哪个选项。
3.int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的顺序来显示。
4.String类型的title参数,表示选项中显示的文字

转自:http://liangruijun.blog.51cto.com/3061169/641275/

  • 大小: 4.9 KB
  • 大小: 9.8 KB
  • 大小: 4.7 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    android 界面超炫菜单效果

    Android提供了多种菜单类型,包括选项菜单(Option Menu)、上下文菜单(Context Menu)和子菜单(Submenu)。选项菜单通常出现在屏幕顶部的三个点(汉堡菜单)中,而上下文菜单则在长按某项内容时显示。要创建这些...

    菜单,包括选项菜单,子菜单,上下文菜单

    首先,选项菜单(Option Menu)是最常见的菜单类型,通常位于屏幕的顶部或底部,作为应用的主要功能入口。用户可以通过点击屏幕右上角的三道横线(汉堡菜单)来打开它。创建选项菜单主要涉及在`res/menu`目录下定义...

    android多级菜单列表设计例程

    菜单可以在不同的场景下使用,如选项菜单(Option Menu)、上下文菜单(Context Menu)或子菜单(Submenu)。在多级菜单中,子菜单是菜单项下的一个嵌套菜单,可以递归地创建多级结构。 1. **菜单创建**: - 在XML...

    android特殊菜单

    3. **弹出式菜单(Popup Menu)**:这类菜单可以在任何地方弹出,常用于需要临时显示多个操作选项的情况。通过`PopupMenu`类实例化并在需要的地方显示。 在描述中提到的“菜单结构就像是一个星球四周围绕着许多卫星...

    老罗android视频开发源码和ppt--android菜单的使用.rar

    Android菜单主要分为三种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)和弹出式菜单(PopupMenu)。选项菜单通常在屏幕顶部显示,当用户点击菜单键或者在屏幕右上角的三个点时出现;上下文菜单则在...

    智能家居系统 菜单Menu.doc

    1. 选项菜单(Option Menu):这是最常见的一类菜单,通常在屏幕的顶部或底部出现,通常在操作界面的三个点(汉堡菜单)中隐藏。选项菜单包含了一系列与当前屏幕相关的功能,如设置、返回等。用户可以通过点击汉堡...

    android menu

    在Android系统中,菜单通常出现在活动(Activity)的三个主要位置:选项菜单(Option Menu)、上下文菜单(Context Menu)和弹出式菜单(Popup Menu)。本篇文章将深入探讨`android menu`的相关知识,特别是如何创建...

    MenuDemo01

    Android允许自定义菜单的展开和收缩动画,通过`MenuItemCompat`类的一些方法可以实现。 通过`MenuDemo01`这个项目,开发者可以学习到如何设计和实现各种类型的菜单,以及如何根据应用需求灵活地调整菜单的行为。...

    android用户界面开发

    5.5 选项菜单、子菜单和快捷菜单Android 应用的菜单通常分为三种:选项菜单(Option Menu)、子菜单(Submenu)和快捷菜单(Context Menu)。选项菜单显示在屏幕顶部,一般在动作栏(Action Bar)中;子菜单在选项...

Global site tag (gtag.js) - Google Analytics