函数onCreateOptionsMenu()为创建Menu菜单的项目

函数onOptionsItemSelected()为处理菜单被选中运行后的事件处理

首先看下Activity的内容:

<span style="font-size:14px;">package com.test.androidtest;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);
        switch (item.getItemId()) {
        case R.id.menu01:
            Toast.makeText(this, "设置", Toast.LENGTH_LONG).show();
            break;
 
        case R.id.menu02:
            Toast.makeText(this, "测试", Toast.LENGTH_LONG).show();
            break;
        }
        return true;
    }
 
}
</span>

R.menu.main文件位于:res/menu下,menu的布局如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <item
        android:id="@+id/menu01"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:title="@string/action_settings"/>
    <item
        android:id="@+id/menu02"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:title="test"/>
 
</menu>

android:showAsAction有never、ifRoom、always、withText等几种值。之处always会一直在右上角显示,如果设置never则看不到,需要点击手机右下角的菜单项才会显示,可以自己试试。

onCreateOptionsMenu()函数下也可以不用布局添加,使用动态添加:

menu.add(0,0,0,"Settings");

menu.add(0,1,1,"test");

return super.onCreateOpntionsMenu(menu);

注:add()四个参数的含义分别为:

第一个参数int类型,group ID,代表组的感念,可以将几个菜单项归为一组,以便更好的以组方式管理菜单按钮。

第二个参数int类型的item ID。这个很重要,代表该项的编号,一个item ID对应一个menu中的选项。在后面使用菜单的时候就靠这个item ID。

第三个参数的int类型Order ID,代表菜单项的现实顺序,默认0,表示菜单的现实顺序就是按照add的显示顺序。

第四个参数String是菜单的标题。

对应的onoOptionsItemSelected()的代码如下:

super.onOptionsItemSelected(item);

switch(item.getItemId()){

case 0:

break;

case 1:

break;

}

return true;

原文:https://blog.csdn.net/dsc114/article/details/37963627

菜单项onCreateOptionsMenu()和onOptionsItemSelected()的使用相关推荐

  1. Android 添加菜单项

    刚开始看郭大神的<>,实现以下里面的一些例子.利用Menu给APP添加一个菜单项. 效果图 结构图 在res的menu文件夹下创建一个xml文件,当然你也可以使用系统创建的main.xml ...

  2. 新建一个Menu菜单项

    创建一个Menu 首先再res下创建一个文件夹,命名为menu,然后在里面创建一个main文件,在main.xml里面编辑内容 这里我是定义了两个菜单项,一个为Add,另一个为Remove 然后在Ma ...

  3. android menu item属性,menuitem - Android 4.3菜单项showAsAction =“always”被忽略

    menuitem - Android 4.3菜单项showAsAction ="always"被忽略 我使用从Android 4.3(API级别18)开始提供的新v7 appcom ...

  4. MSDN Visual系列:创建Feature扩展SharePoint列表项或文档的操作菜单项

    原文:http://msdn2.microsoft.com/en-us/library/bb418731.aspx 在SharePoint中我们可以通过创建一个包含CustomAction元素定义的F ...

  5. 13、Java菜单条、菜单、菜单项

    13.Java菜单条.菜单.菜单项 一般用Java做界面时,都得牵涉到菜单条.菜单.菜单项的设计.菜单项放在菜单里,菜单放在菜单条里,且其字体均可设置. 13.1.菜单条(Menubar) Frame ...

  6. 如何:对 SharePoint 列表项隐藏 ECB 中的菜单项

    可以通过使用功能框架向编辑控制块 (ECB) 菜单添加新的自定义操作.但是,您不能使用此方法进行相反的操作,即隐藏现有的 ECB 菜单项,因为它们是通过使用 ECMAScript(JavaScript ...

  7. Python 自动化-pywinauto遍历展示程序的所有菜单项,菜单栏menu_select()操作方法的使用

    通过 menu().items() 可以获取当前级次下的菜单项,再通过 sub_menu() 判断是有下级菜单项,不断的递归,把所有的菜单项打印出来. # -*- coding: UTF8 -*- f ...

  8. 使用API动态添加删除菜单项

    使用API动态添加删除菜单项 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, ...

  9. CLR自定义菜单项(ToolStripItem)

    新建ToolStripColor.h 让类ToolStripColor继承自ToolStripControlHost实现,则ToolStripColor的对象并可以作为一个MenuItem添加到一个菜 ...

最新文章

  1. geyser学习记录(day1):将任务拆分的架构
  2. 【大学课程】操作系统知识点
  3. SpringBoot中自定义日志配置logback-spring.xml
  4. pythonpyqt5线程暂停重启时间_PyQT5 停止死循环线程(监控文件是否修改)
  5. java分布式和集成式_【分布式java应用笔记】分布式与soa
  6. 计算机网络系统工程技术交底,技术交底内容大全
  7. linux cetos7关闭防火墙
  8. 手把手教你学DSP 28335学习笔记
  9. css标签权重计算知识详解
  10. 软件测试工作基本流程
  11. 华为研发岗位两轮面试的准备(本科生,已经拿到offer,月薪20k,15薪)
  12. 什么软件可以清除流氓软件
  13. canvas——实现图片验证码(功能实现)
  14. KEAZ128 时钟配置
  15. 无人驾驶运用了什么技术,无人驾驶技术是
  16. [TI-Sitara]启动流程
  17. 机器视觉之光源基础知识及光源选型
  18. c语言关键词中英翻译机编程,C语言关键字中英翻译机.doc
  19. 计划订单投放成生产任务单时修改生产任务单编号
  20. Python人生重开模拟器(高级版)

热门文章

  1. iptables(下)规则
  2. 关于人行acs对账不及时_以在线教育公司为例,如何做一款财务对账产品?
  3. Java钱包_钱包行云java
  4. 所有配置_Springboot 打印所有配置
  5. c mysql连接池_在LINUX下用C/C++写了一个连接池(访问MYSQL)的类
  6. 自己动手写CPU(6)流水线暂停、乘累加减与除法器的实现
  7. 基于verilog的万年历设计
  8. mysql生活应用_MySQL应用
  9. python项目实战干货_干货 | 这4个Python实战项目,让你瞬间读懂Python!
  10. 囧囧西游之大闹天宫java_《囧囧西游之大闹天宫》攻略(1)