Android Studio下拉菜单
一、菜单概述
本次课我们准备讲解菜单,菜单在安卓应用程序中占有比较重要的位置。原生安卓提供了三种类型的菜单:选项菜单(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下拉菜单相关推荐
- android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单
怎么在android studio中使用Spinner实现一个下拉菜单 发布时间:2021-03-23 14:56:15 来源:亿速云 阅读:92 作者:Leah 这期内容当中小编将会给大家带来有关怎 ...
- android studio 下拉菜单,android studio 的下拉菜单Spinner使用详解
一.认识Spinner Spinner其实就是一个列表选择框.不过Android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择. Spinner 与 Gallery 都继承了Abs ...
- android 美团下拉菜单,Android仿美团分类下拉菜单实例代码
本文实例为大家分享了Android仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下 效果图 操作平台 AS2.0 第三方框架:butterknife build.gradle depe ...
- Android 自定义下拉菜单的实现(基于PopupWindow+RecyclerView)
文章目录 一.引言 二.效果 三.代码实现 四.结语 一.引言 安卓自带的Spinner局限性较大,基本不能满足开发样式要求,当前又没有成熟的相关框架,所以决定自己使用PopupWindow实现一个下 ...
- android 自定义下拉菜单
本实例的自定义下拉菜单主要是继承PopupWindow类来实现的弹出窗体,各种布局效果可以根据自己定义设计.弹出的动画效果主要用到了translate.alpha.scale,具体实现步骤如下: 先上 ...
- android联动下拉菜单,Android spinner下拉框连动
本代码主要功能 1. 向拉菜单 spinner添加数据 2.下拉菜单连动 以下是核心代码 //定义变量 private Spinner spinner3; private Spinner spinne ...
- android 系统下拉菜单,【MotoX评测】原生Android5.0下拉菜单和基础设置_Moto X_手机评测-中关村在线...
■ 柔和的阶段性下拉菜单 受益于Android5.0的变化,新Moto X的下拉菜单采用的是浮在界面上方的下拉框,并且分为双步下拉(第一步下拉是通知中心,第二步下拉可调出快捷选项),视觉效果和操作体验 ...
- android edittext 下拉菜单,Android 下拉列表 DropEditText
软件介绍 一款可以在android上实现类似window上的下拉效果的组件,并且可以实现文本输入. 效果演示: 使用方法: 在布局文件配置: android:id="@+id/drop_ed ...
- android 多级下拉菜单实现教程
原创,如转载请标明链接:http://blog.csdn.net/q610098308/article/details/50333387 很多App,都有二级菜单出现,但android 本身实现的菜单 ...
最新文章
- JAVA中priorityqueue详解
- python中get和set使用_Python中的__get__与__set__
- 【直播回放】150分钟详解模型压缩理论和实践
- FetchAI Case Study
- 【摘录】MTK按键扫描原理及相关代码
- 基于visual Studio2013解决面试题之0702输出数字
- SpringCloud微服务:阿里开源组件Nacos,服务和配置管理
- VINS(五)非线性优化与在线标定调整
- 深入了解 Loader
- SQL Server 2012新增的内置函数尝试
- 从零开始的全栈工程师——html篇1.4
- Vivado中常用的几种仿真浅论
- Ubuntu 安装 gcc 过程
- 如何高效完成产品生命周期管理
- 计算机资源管理菜单包括哪些,资源管理器文件菜单有哪些命令,资源管理器命令...
- 用python制作相册影集_影集制作APP哪个好?就用这些APP把照片做成相册!
- Selenium打开浏览器闪退问题(浏览器驱动是对应的前提)-解决办法
- h5 版活体检测、视频活体检测
- css3中var函数
- UPS知识全集,值得收藏!
热门文章
- Vmware+Ubuntu18.04配置桥接模式,并解决虚机中网络慢的问题
- 2021年新版本下载钉钉群直播回放视频方法介绍
- 利用Python turtle库制作夜空
- 睡眠伤害计算机硬件吗,电脑长时间睡眠、不关机对电脑有伤害吗?
- 成功路上并不拥挤 坚持就是胜利
- 5G技术即将到来,5G网络的基本特点和应用你了解了多少
- ps 给小姐姐更换背景
- php市场占比 2019,2019年家电市场份额占比排名
- 输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 谭浩强《c语言程序设计》第五章第八题
- opencv-python将两个文件夹下的照片拼接一起,然后保存