菜单(Menu)的三中创建方式——Android开发之路2

菜单的三种创建方式

一、OptionsMenu---选项菜单

Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单。这种菜单叫做选项菜单(Options Menu)或系统菜单。
从3.0开始,Android不要求手机设备上必须提供MENU按键。因此Android推荐使用ActionBar来代替Menu。
在不同的版本中菜单显示效果有差异

二、ContextMenu---上下文菜单

三、PopupMenu---弹出式菜单

可以在指定的组件上设置弹出式菜单,默认情况下,弹出式菜单会显示在该组件的下方或者上方,PopupMenu可增加多个菜单项,也可以为菜单项增加子菜单项。

创建步骤:

  1、调用new PopupMenu(MainActivity.this,View view),view代表激发弹出菜单的组件。

  2、调用MenuInflater()方法将菜单填充到PopupMenu。

  3、调用PopupMenu的show方法显示弹出式菜单。

代码案例:

点击一个按钮,弹出菜单项

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @SuppressLint("NewApi")
    public void getItem(View view) {
        // 创建弹出式菜单
        PopupMenu popupMenu = new PopupMenu(MainActivity.this, view);
        // 获取菜单对象
        Menu menu = popupMenu.getMenu();
        // 添加菜单选项
        menu.add("查找");
        menu.add("删除");
        popupMenu.show();// 显示菜单
        // 设置菜单项的监听事件,Toast点击的菜单项的内容
        popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                Toast.makeText(MainActivity.this, item.getTitle(), 0).show();
                return false;
            }
        });
    }
时间: 2024-12-12 11:56:55

菜单(Menu)的三中创建方式——Android开发之路2的相关文章

android开发之路09(浅谈SQLite数据库01)

1.SQLite数据库: SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使 用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保 SQLite的二进制文件存在即可开始创建.连接和使用数据库. 对于SDK来讲,已经内置了SQLite的程序,因此我们不需要在SQLite官网上下载.一般数据库采用的都是静态的数据类 型,而我们的SQLite数据库采用的是动态数据库,会

android开发之路02(浅谈BroadcastReceiver)

一.BroadcastReceiver (广播接收者)的作用是用来接收来自系统和应用中的广播.应用如下: 1.开机完成后系统会产生一条广播----->接收到这条广播就能实现开机启动服务的功能: 2.网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作: 当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度: Android中的广播机制设计的非常出色,大大减少了开发的工作量和开发周期. 二.静态注册广播接收者和动态注册广播接收者 ①创

android开发之路03

一.Activity1.如何在一个应用程序中定义多个Activity:①定义一个类,继承Activity:②在该类当中,复写Activity当中的onCreate方法:③在AndroidManifest.xml文件当中注册该Activity:2.如何启动一个Activity:①生成一个意图(Intent)对象:②调用setClass方法设置所要启动的Activity:③调用startActivity方法启动Activity3.Android当中的back stack(返回栈即返回按钮):栈这种数

android开发之路11(用SharedPreferences存储数据)

Android平台给我们提供了一个SharedPreferences类,实际上SharedPreferences处理的就是一个key-value(键值对),它是 一个轻量级的存储类,特别适合用于保存软件配置参数及用户的偏好设置参数,比如登录时候的记住密码功能等.使用 SharedPreferences保存数据,实际上是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下 : 1.获取SharedPreferences对象的两种方式:

android开发之路01

一.android系统被分为4个层次:1.最下层的是linux核心,包括多个驱动程序,提供了操作系统应该具备的核心功能:2.在linux核心之上,包括两个部分,一部分是Android Runtime(包括Dalvik虚拟机,和Core Libraries相当于java中的jdk)和LIBRARIES:3.是Application Framework这一层,该层包括多个Android开发框架(即各种管理器,如资源管理器等):4.Aplication层(该层既是我们工作的领域app)二.基于组件的应

android开发之路08(ListView&amp;Adapter)

ListView控件介绍:用于将数据库中的数据或者网络中的数据通过列表的形式显示出来:ListView采用MVC模式将前端显示和后端数据进行分离. 也就是说,ListView控件在装载数据时并不是直接使用ListView.add或者类似的方法添加数据,而是需要指定一个Adapter对象.该对象相当于MVC模式中的C(控制器),ListView相当于MVC模式中的V(视图),用于显示数据.为ListView提供数据的List或数组相当于MVC模式中的M(模型)在ListView控件中通过Adapt

【转】Android 开发之旅:view的几种布局方式及实践

引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了.在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线性布局(Linear Layout).

【转】Android开发之旅:应用程序基础及组件

为了后面的例子做准备,本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西.本篇的主题如下: 1.应用程序基础 2.应用程序组件 2.1.活动(Activities) 2.2.服务(Services) 2.3.广播接收者(Broadcast receivers) 2.4.内容提供者(Content providers) 因为这些内容比较理论,且没有用例子来说明,看上去会比较枯燥,我就把这几篇写得算比较短,方便大家吸收. 1

android开发之APP Widget

android开发之APP Widget 本博文主要讲述的android开发中的桌面程序的开发--APP widget,主要用的是PendingIntent和RemoteViews. PendingIntent主要用来设置桌面程序的相应方式.此对象可以有三种Intent方式,第一个是开始一个新的Activity,第二个是发送一个广播,第三个是开始一个service. RemoteViews的作用:因为桌面程序和app程序不是属于一个进程,不能通过正常的操作控件的方式来操作.需要使用系统提供的Re