趁着快上课,赶紧把今天学习的东西记录一下!!

今天来讲讲Menu这个类!但是听一个大牛说Menu已经不推荐使用了,但是我觉的还是要学习学习!

首先可以通过两种方式来创建自己的Menu,第一种是通过XML文件,第二种是在java代码程序中创建,至于选哪一种,看个人爱好!本人推荐在XML中创建,这样符合MVC模型的要求!

第一种在XML中创建,在res目录下创建一个menu目录

menu.xml

:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
        android:id="@+id/about"
        android:title="关于"/>
    <item
        android:id="@+id/exit"
        android:title="退出"/>

</menu>

然后在java代码中重写onCreateOptionsMenu方法,这个方法是系统自动调用!

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();//这个Inflater东东,下次会来讲。
        inflater.inflate(R.menu.menu, menu);//设置menu界面为res/menu/menu.xml
        return true;
    }

第二种在Java程序中创建:

public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, 0, 0, "OK");
        menu.add(0, 1, 1, "NO");
        return true;
    }

看看menu.add这个方法:

public abstractMenuItemadd (int groupId, int itemId, int order,CharSequence title)

Since: API Level 1

Add a new item to the menu. This item displays the given title for its label.

Parameters
groupId The group identifier that this item should be part of. This can be used to define groups of items for batch state changes. Normally useNONE if an item should not be in a group.
itemId Unique item ID. Use NONE if you do not need a unique ID.
order The order for the item. Use NONE if you do not care about the order. SeegetOrder().
title The text to display for the item.
Returns
  • The newly added menu item.

第一个参数组号,第二个参数itemID,这个在点击菜单时会用到,第三个参数order对item的排序,第四个参数设置菜单显示的内容,很容易吧!

接下的事是什么呢?不用猜又是监听器这个角色了!看看一下官方文档,可以找到

Handling click events

When the user selects an item from the options menu (including action items in the action bar),the system calls your activity'sonOptionsItemSelected() method. This method passes theMenuItem selected. Youcan identify the item by callinggetItemId(), which returns the uniqueID for the menu item (defined by theandroid:id attribute in the menu resource or with aninteger given to theadd() method). You can matchthis ID against known menu items to perform the appropriate action. For example:

简单来说当你点击菜单时,系统会调用onOptionsItemSelected这个方法,参数是MenuItem这个类,可以通过这个类你可以获得点击的是哪一个item,接着进行判断,比如:

如果用的是XML菜单的话,就像下面来写

public boolean onOptionsItemSelected(MenuItem item) {

int item_id = item.getItemId();
        switch (item_id) {
        case R.id.about:
            Intent intent = new Intent();
            intent.setClass(MenuTextActivity.this, MenuDemoActivity.class);
            startActivity(intent);
            MenuTextActivity.this.finish();
            break;
        case R.id.exit:
            MenuTextActivity.this.finish();
            break;
        }
        return true;
    }

如果用java的菜单的话,就用下面来写:

public boolean onOptionsItemSelected(MenuItem item) {

int item_id = item.getItemId();
        switch (item_id) {
        case 0:
        case 1:
            Intent intent = new Intent();
            intent.setClass(MenuDemoActivity.this, MenuTextActivity.class);
            startActivity(intent);
            MenuDemoActivity.this.finish();
            break;
        }
        return true;
    }

就这么简单,唉!快敲铃上课了,快闪!

android Menu菜单组键相关推荐

  1. Android_菜单组

    菜单组 春有百花秋有月,夏有凉风冬有雪. --颂古五十五首其一 ​ 菜单组是菜单项集合,可用来为菜单项设置共同的属性 菜单分组 使用可以对菜单项目进行 菜单组可以在菜单资源文件中定义,把元素嵌套在元素 ...

  2. Android menu属性详解

    转自:http://blog.csdn.net/n3562141/article/details/50325717 menu的属性展示 <?xml version="1.0" ...

  3. Android Menu用法全面讲解

    说明:本文只介绍Android3.0及以上的Menu知识点. 菜单的分类 菜单是Android应用中非常重要且常见的组成部分,主要可以分为三类:选项菜单.上下文菜单/上下文操作模式以及弹出菜单.它们的 ...

  4. Android Menu菜单栏

    Android Menu菜单栏 效果图 Android Menu菜单栏 菜单: 菜单是许多类型的应用程序中的通用用户界面组件.要提供熟悉且一致的用户体验,您应该使用MenuAPI在活动中呈现用户操作和 ...

  5. Android Menu,OptionMenu选项菜单,ContextMenu上下文菜单,Contextual ActionMode,PopUp Menu,PopU pWi ndow

    Android Menu 一.Opti onMenu选项菜单: (一).简介: 1.A ndroi d应用中的菜单默认是隐藏的,只有当用户点击手机上的ME NU 键,系统才会显示菜单.这种菜单叫做选项 ...

  6. Android Menu菜单

    一.Android提供了一些简单的方法来为应用添加Menu菜单. 提供了三种类型应用菜单: 1.Options Menu:通过Menu按钮调用菜单 2.Context Menu:通过长按屏幕,调用注册 ...

  7. android menu点击事件6,Android Menu

    Android Menu 1.Android Menu(菜单)分为两种 选项菜单 OptionMenu 上下文菜单ContextMenu 2. 实现目录的基本操作 在xml文件中定义布局文件 重写on ...

  8. android 布局适配虚拟键适配

    今天,看到关于虚拟键盘的内容,于是记录一下. 如果是控件,可以直接使用Android:fitsSystemWindows="true"),但是如果是popwindow,那就必须获取 ...

  9. android底层按键监听,Android应用中Back键的监听及处理实例

    MainActivity如下: package cn.testnbackpressed; import android.os.Bundle; import android.view.KeyEvent; ...

最新文章

  1. 台湾一校长震动所有中国人的演讲
  2. 推荐 10 个你没见过的 VsCode 的高效开源神器,YYDS
  3. 解决MyBatis的报错 There is no getter for property named ‘*‘ in ‘class java.lang.String‘
  4. vue 关于solt得用法
  5. win7磁盘设置背景方法
  6. ZZULI 1876: 蛤玮的项链 Hash + 二分
  7. MFC开发IM-第二篇、MFC picture 控件的用法
  8. 微信小程序之自定义toast弹窗
  9. Java神鬼莫测之MyBatis中$与#的区别(五)
  10. python一个类有几个实例对象_Python用一个类实例来解开一个对象
  11. 支付人必读:一文彻底搞清楚银联和现代支付系统运行过程
  12. 塞班S40手机内存出现乱码无法删除的解决办法
  13. 乾颐堂现任明教教主(2014年课程)TCPIP协议详解卷一 第三节课笔记
  14. postgresql 客户端启动配置
  15. java 图片 白边,如何在Java中自动裁剪图像白色边框?
  16. spring-boot-starter-data-elasticsearch 中测试查询语句报错failed to map source
  17. 8代u能装服务器系统吗,8代U安装win7,几代U支持win7
  18. c# 第32节 类的继承
  19. 项目二 任务七 管理rpm软件包与压缩包
  20. 关于linux下的xinetd服务

热门文章

  1. pacman常用命令汇总
  2. UBIC推服务机器人Kibiro,明年正式发售
  3. 艾乐云后台伪装404恶搞页,后台恶搞伪装单页
  4. Matlab图像处理rgb2ind函数
  5. 使用多线程往同一个文件写入数据的线程安全的例子(java实现)
  6. 总结|pycharm2020 激活激活方法
  7. THz:短距离室内电信上的研究
  8. Project工具(二)—建立项目和资源
  9. 网络爬虫的 “ 黑洞 ”
  10. 【KDD2022教程】图算法公平性:方法与趋势