一、菜单概述

本次课我们准备讲解菜单,菜单在安卓应用程序中占有比较重要的位置。原生安卓提供了三种类型的菜单:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)。在实际安卓项目中,往往会使用SlidingMenu(滑动菜单),但是要求我们学习如何使用第三方开源库。

二、选项菜单案例演示

  • 选项菜单针对整个应用程序,提供的是全局性的功能选项。

(一)运行效果

(二)实现步骤

  • 1、创建安卓应用【OptionsMenuDemo】

2、将背景图片拷贝到drawable目录

3、主布局资源文件activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/a1"android:gravity="center"tools:context=".MainActivity"><Buttonandroid:id="@+id/btnPopupOptionsMenu"android:layout_width="200dp"android:layout_height="wrap_content"android:onClick="doPopupOptionsMenu"android:text="@string/popup_options_menu" />
</LinearLayout>

4、字符串资源文件strings.xml

<resources><string name="app_name">选项菜单演示</string><string name="popup_options_menu">弹出选项菜单</string>
</resources>

5、主界面类 - MainActivity

package net.hw.optons_menu_demo;import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;public class MainActivity extends AppCompatActivity {private static final int NEW_MENU = 1;private static final int OPEN_MENU = 2;private static final int SAVE_MENU = 3;private static final int EXIT_MENU = 4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 利用布局资源文件设置用户界面setContentView(R.layout.activity_main);}/*** 创建选项菜单** @param menu* @return 是否成功*/@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// 添加四个菜单项(组标识、菜单项标识、菜单项序号、菜单项标题)menu.add(0, NEW_MENU, 1, "新建文件");menu.add(0, OPEN_MENU, 2, "打开文件");menu.add(0, SAVE_MENU, 3, "保存文件");menu.add(0, EXIT_MENU, 4, "退出程序");return true;}/*** 菜单项选择事件处理方法** @param item* @return*/@Overridepublic boolean onOptionsItemSelected(@NonNull MenuItem item) {// 判断用户单击了哪个菜单项switch (item.getItemId()) {case NEW_MENU:Toast.makeText(this, "你单击了【新建文件】菜单项!", Toast.LENGTH_SHORT).show();break;case OPEN_MENU:Toast.makeText(this, "你单击了【打开文件】菜单项!", Toast.LENGTH_SHORT).show();break;case SAVE_MENU:Toast.makeText(this, "你单击了【保存文件】菜单项!", Toast.LENGTH_SHORT).show();break;case EXIT_MENU:finish(); // 关闭当前活动窗口break;}return true;}/*** 弹出选项菜单按钮单击事件处理方法** @param view*/public void doPopupOptionsMenu(View view) {openOptionsMenu(); // 打开选项菜单}@Overridepublic void openOptionsMenu() {final View toolbar = getWindow().getDecorView().findViewById(R.id.action_bar);if (toolbar instanceof Toolbar) {((Toolbar)toolbar).showOverflowMenu();} else {super.openOptionsMenu();}}
}

6 启动应用,查看效果

Android Studio下拉菜单相关推荐

  1. android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单

    怎么在android studio中使用Spinner实现一个下拉菜单 发布时间:2021-03-23 14:56:15 来源:亿速云 阅读:92 作者:Leah 这期内容当中小编将会给大家带来有关怎 ...

  2. android studio 下拉菜单,android studio 的下拉菜单Spinner使用详解

    一.认识Spinner Spinner其实就是一个列表选择框.不过Android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择. Spinner 与 Gallery 都继承了Abs ...

  3. android 美团下拉菜单,Android仿美团分类下拉菜单实例代码

    本文实例为大家分享了Android仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下 效果图 操作平台 AS2.0 第三方框架:butterknife build.gradle depe ...

  4. Android 自定义下拉菜单的实现(基于PopupWindow+RecyclerView)

    文章目录 一.引言 二.效果 三.代码实现 四.结语 一.引言 安卓自带的Spinner局限性较大,基本不能满足开发样式要求,当前又没有成熟的相关框架,所以决定自己使用PopupWindow实现一个下 ...

  5. android 自定义下拉菜单

    本实例的自定义下拉菜单主要是继承PopupWindow类来实现的弹出窗体,各种布局效果可以根据自己定义设计.弹出的动画效果主要用到了translate.alpha.scale,具体实现步骤如下: 先上 ...

  6. android联动下拉菜单,Android spinner下拉框连动

    本代码主要功能 1. 向拉菜单 spinner添加数据 2.下拉菜单连动 以下是核心代码 //定义变量 private Spinner spinner3; private Spinner spinne ...

  7. android 系统下拉菜单,【MotoX评测】原生Android5.0下拉菜单和基础设置_Moto X_手机评测-中关村在线...

    ■ 柔和的阶段性下拉菜单 受益于Android5.0的变化,新Moto X的下拉菜单采用的是浮在界面上方的下拉框,并且分为双步下拉(第一步下拉是通知中心,第二步下拉可调出快捷选项),视觉效果和操作体验 ...

  8. android edittext 下拉菜单,Android 下拉列表 DropEditText

    软件介绍 一款可以在android上实现类似window上的下拉效果的组件,并且可以实现文本输入. 效果演示: 使用方法: 在布局文件配置: android:id="@+id/drop_ed ...

  9. android 多级下拉菜单实现教程

    原创,如转载请标明链接:http://blog.csdn.net/q610098308/article/details/50333387 很多App,都有二级菜单出现,但android 本身实现的菜单 ...

最新文章

  1. JAVA中priorityqueue详解
  2. python中get和set使用_Python中的__get__与__set__
  3. 【直播回放】150分钟详解模型压缩理论和实践
  4. FetchAI Case Study
  5. 【摘录】MTK按键扫描原理及相关代码
  6. 基于visual Studio2013解决面试题之0702输出数字
  7. SpringCloud微服务:阿里开源组件Nacos,服务和配置管理
  8. VINS(五)非线性优化与在线标定调整
  9. 深入了解 Loader
  10. SQL Server 2012新增的内置函数尝试
  11. 从零开始的全栈工程师——html篇1.4
  12. Vivado中常用的几种仿真浅论
  13. Ubuntu 安装 gcc 过程
  14. 如何高效完成产品生命周期管理
  15. 计算机资源管理菜单包括哪些,资源管理器文件菜单有哪些命令,资源管理器命令...
  16. 用python制作相册影集_影集制作APP哪个好?就用这些APP把照片做成相册!
  17. Selenium打开浏览器闪退问题(浏览器驱动是对应的前提)-解决办法
  18. h5 版活体检测、视频活体检测
  19. css3中var函数
  20. UPS知识全集,值得收藏!

热门文章

  1. Vmware+Ubuntu18.04配置桥接模式,并解决虚机中网络慢的问题
  2. 2021年新版本下载钉钉群直播回放视频方法介绍
  3. 利用Python turtle库制作夜空
  4. 睡眠伤害计算机硬件吗,电脑长时间睡眠、不关机对电脑有伤害吗?
  5. 成功路上并不拥挤 坚持就是胜利
  6. 5G技术即将到来,5G网络的基本特点和应用你了解了多少
  7. ps 给小姐姐更换背景
  8. php市场占比 2019,2019年家电市场份额占比排名
  9. 输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 谭浩强《c语言程序设计》第五章第八题
  10. opencv-python将两个文件夹下的照片拼接一起,然后保存