`
oldman
  • 浏览: 20774 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Android Menus

阅读更多

1.Options Menu.

 

通过按下手机上的MENU键,可以打开Options Menu。Options Menu最多只能在屏幕最下面显示6个菜单项,称为Icon Menu.如果添加了多于6个的菜单项,将通过"More"菜单项显示,这种称为Expanded Menu.当Options Menu第一次被打开时,系统将调用Activity的onCreateOptionsMenu(Menu menu)方法,在这个方法中可以通过配置一个XML文件,或者调用Menu的add()方法来添加你想要的Menu。Menu的add()方法将返回一个MenuItem对象,你用通过这个对象来配置一些其他属性。比如:icon,shortcut,intent。Menu的add()方法很多,要注意的是itemId这个参数,它的唯一性。

当选择了一个Options Menu时,会调用onOptionsItemSelected(MenuItem item)方法。如果想修改Options Menu,需要重写onPrepareOptionsMenu()方法。

 

用add()添加:

 

/* Creates the menu items */
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, MENU_NEW_GAME, 0, "New Game");
    menu.add(0, MENU_QUIT, 0, "Quit").setIcon(R.drawable.menu_quit_icon);
    return true;
}

/* Handles item selections */
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case MENU_NEW_GAME:
        newGame();
        return true;
    case MENU_QUIT:
        quit();
        return true;
    }
    return false;
}

 

 

通过XML文件添加:

res/menu/下新建options_menu.xml文件

 

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/new_game"
          android:title="New Game" />
    <item android:id="@+id/quit"
          android:title="Quit" />
</menu>

 

 在onCreateOptionsMenu()方法中,我们这样写:

 

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);
    return true;
}
 

 

2.Context Menu.

 

它需要注册到某个View对象上,当长按这个View大概2秒时间,会出现这个Context Menu。为某个View注册Context Menu是用registerForContextMenu(View view)方法来实现。Context Menu在显示前都会调用onCreateContextMenu来生成menu。onContextItemSelected用来处理选中的菜单项。注意:Context Menu不支持icons和shortcut keys.

 

public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, v, menuInfo);
  menu.add(0, EDIT_ID, 0, "Edit");
  menu.add(0, DELETE_ID, 0,  "Delete");
}

public boolean onContextItemSelected(MenuItem item) {
  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
  switch (item.getItemId()) {
  case EDIT_ID:
    editNote(info.id);
    return true;
  case DELETE_ID:
    deleteNote(info.id);
    return true;
  default:
    return super.onContextItemSelected(item);
  }
}

 

 注册这个Context Menu:

 

registerForContextMenu(getListView());

 

 这里的 getListView()ListActivity的方法,它将返回一个ListView.记住任何一个View对象都可以注册一个Context Menu。

 

3.Submenus

 

 

public boolean onCreateOptionsMenu(Menu menu) {
  boolean result = super.onCreateOptionsMenu(menu);

  SubMenu fileMenu = menu.addSubMenu("File");
  SubMenu editMenu = menu.addSubMenu("Edit");
  fileMenu.add("new");
  fileMenu.add("open");
  fileMenu.add("save");
  editMenu.add("undo");
  editMenu.add("redo");

  return result;
}
 

 

4.Menu Features

Menu groups 菜单项分组的功能:

在用Menu的add()方法时,通过参数groupId的设置可以实现分组。setGroupVisible()用来显示或者隐藏你的菜单组。setGroupEnabled()用来启用或者禁用你的菜单组。setGroupCheckable()用来设置你的菜单项是否可选。 setGroupCheckable()方法有三个参数int group, boolean checkable, boolean exclusive。第一个参数是要设置的组,第二个参数是否可选,第三个参数为true表示单选,false表示多选。

Shortcut keys 快捷键:

我们还可以设置快捷键。使用setAlphabeticShortcut(char),setNumericShortcut(int),setShortcut(char,int)可以设置字符,数字,组合(字符+数字)键。注意:Context Menu不能添加快捷键。

 

 

0
0
分享到:
评论

相关推荐

    原创讲解Android Menus

    Android Menus是Android应用开发中的一个重要组成部分,它们提供了一种用户友好的方式来展示应用程序的主要操作选项。在Android系统中,Menu主要用于在特定时刻显示一组可执行的操作,比如在活动(Activity)顶部...

    Android代码-FlyoutMenus

    Simple material-style flyout menus for Android. There are many flyout type menus for Android, but this one is mine. compile 'org.zakariya.flyoutmenus:flyoutmenu:0.5.3' minSdkVersion: 14 Note: when ...

    Android_Menus测试代码

    在Android应用开发中,菜单(Menu)是用户界面不可或缺的一部分,它提供了用户操作的主要入口点。本篇文章将深入探讨如何创建和测试Android菜单,主要基于提供的链接:...

    Android动态修改ToolBar的Menu菜单示例

    Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了。 开始上货 Menu Menu下添加3个Item &lt;menu xmlns:android=...

    android-common-menus-1.1.2-sources.jar

    官方版本,亲测可用

    android-common-menus-1.1.0-sources.jar

    官方版本,亲测可用

    Android Studio 3.2 Development Essentials, Kotlin Edition

    47. CreatingandManaaing overflow Menus. on Android 48. Animating User Interfaceswith the Android Transitions Framework 49. An Android Transition Tutorial using beginDelayedTransition sI wWatinawthbthe...

    【Android开发API】用户界面-菜单-Menus.pdf

    在Android开发中,菜单是用户界面的重要组成部分,用于呈现用户可执行的操作和应用中的其他功能。自Android 3.0(API级别11)开始,系统不再强制要求物理菜单键,而是提倡使用动作条来展示主要操作,以提供更一致且...

    Mastering.Android.Game.Development.1783551771

    You will also create beautiful and responsive menus and dialogs and explore the different options for playing sound effects and music in Android. You will then learn the basics of creating a ...

    android-menus-popups-dialogs-demo:演示如何显示菜单、弹出窗口和对话框的 Android 应用

    菜单、弹出窗口和对话框的 Android 演示。 有关更多详细信息,请参阅悬崖注释。 特征: 显示带有布局内容的自定义对话框 使用警报生成器显示自定义对话框 显示弹出菜单以显示次要操作 显示工具提示的弹出窗口 为...

    android_ 9ppt (吉林大学android课程英文讲义)

    吉林大学提供的这份英文讲义,详细介绍了Android平台中使用菜单(Menus)的相关知识点,对于深入理解Android用户界面设计与交互提供了宝贵的资料。 根据提供的讲义内容,我们可以了解到Android中菜单的基本类型以及...

    android 葵花宝典

    5. **第八章:菜单**(Android-Chapter08-Menus.pdf): Android应用中的菜单设计对于提供良好的导航至关重要。本章将讲解如何定义和使用各种类型的菜单,包括选项菜单、上下文菜单和弹出式菜单。 6. **第十章:...

    Android menu单选菜单.rar

    在本教程中,我们将深入探讨如何在Android应用中创建和使用单选菜单(Radio Menus)。这份"Android menu单选菜单.rar"压缩包包含了一个具体的示例项目,供开发者参考学习。 首先,我们需要了解Android菜单的基本...

    Android A Programmer’s Guide.rar

    8 Lists, Menus, and Other Views . 149 9 Using the Cell Phone’s GPS Functionality . . 203 10 Using the Google API with GTalk . . . . 239 11 Application: Find a Friend 257 12 Android SDK Tool ...

    android-tabs-menus

    在Android应用开发中,"android-tabs-menus"通常指的是使用Tab布局来展示多个菜单或功能模块的方法。Tab布局是Android用户界面设计中常见的一种模式,它允许用户通过切换不同的标签来浏览和操作不同的内容区域。这里...

    android手机屏幕滑动

    文件名"18Menus2CriminalIntent"可能是指一个示例项目,可能包含了一个具体的犯罪报告应用的菜单或活动实现,具体实现细节需要查看源代码才能了解。在实际开发中,结合这些知识和具体项目需求,你可以构建出各种滑动...

Global site tag (gtag.js) - Google Analytics