Android使用Toolbar来添加右上角菜单

2023-11-09

好久没写东西了,最近学到了很多东西但是也非常忙,把一些知识积累一下,先上个效果图
添加右侧菜单

很常见的一个需求,我们来看下怎么实现的,非常简单

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    tools:context="ht.crackgmkey.com.pbtoolbar.MainActivity">

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent" android:id="@+id/toolbar"
       android:background="#3F51B5"
        android:layout_height="50dp">

        <TextView
            android:text="个人展示" android:gravity="center"
            android:layout_width="match_parent" android:textColor="#000"
            android:textSize="21sp"
            android:layout_height="match_parent" />

    </android.support.v7.widget.Toolbar>

</android.support.constraint.ConstraintLayout>

MainActivity.java

package ht.crackgmkey.com.pbtoolbar;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Toolbar toolbar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main,menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.menu_1:
                Toast.makeText(this, "我是第一个", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_2:
                Toast.makeText(this, "我是第二个", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_3:
                Toast.makeText(this, "我是第三个", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_4:
                Toast.makeText(this, "我是第四个", Toast.LENGTH_SHORT).show();
                break;
        }
        return true;
    }
}

别忘记在res目录下新建menu目录
menu_main.xml

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

    <item
        android:id="@+id/menu_1"
        android:orderInCategory="80"
        android:title="我是第一个"
        app:showAsAction="never" />

    <item
        android:id="@+id/menu_2"
        android:orderInCategory="80"
        android:title="我是第二个"
        app:showAsAction="never" />
    <item
        android:id="@+id/menu_3"
        android:orderInCategory="80"
        android:title="我是第三个"
        app:showAsAction="never" />

    <item
        android:id="@+id/menu_4"
        android:orderInCategory="80"
        android:title="我是第四个"
        app:showAsAction="never" />
</menu>

好了 这样一个右侧菜单栏就完事了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android使用Toolbar来添加右上角菜单 的相关文章

  • MOS管过大电流时关断为什么会出现尖峰电压

    尖峰电压属于浪涌电压里的一种 持续时间极短但数值很高 电机 电容器和功率转换设备 如变速驱动器 是产生尖峰电压的主要因素 雷电击中室外的输电线路也会引起极危险的高能瞬变 它们会在低压电源电路中定期发生 峰值可能会达到数千伏 处理方法 为了防
  • Ubuntu 安装 cuDNN(附测试)

    为深度学习所用 博主预想在Ubuntu16 04上安装 显卡驱动 CUDA cuDNN Tensorflow gpu Keras PyCharm 参考了众多资料 最终成功将所有软件安装完毕 且能成功运行使用 该篇博客介绍了cuDNN的安装教
  • 相机畸变+张正友标定(含源代码)

    希望2022能够自主学习 本文狠狠的借鉴了 相机标定之张正友标定法数学原理详解 含python源码 知乎和最详细 最完整的相机标定讲解 a083614的专栏 CSDN博客 相机的标定 非常感谢 只供自我学习 不做他用 我们知道了相机是如何成
  • Collection集合的三种初始化方法

    一 java容器可以分为两大类 1 Collection其中包括List Set Queue 2 Map 二 Arrays asList 方法 接受一个数组或一个逗号分隔的元素列表 并将其转化为Lists对象 三 1 构造器方法 Colle
  • UVC摄像头-学习

    多摄像头拍摄实现 从人脸识别入手 已经实现打开双uvc摄像头 需要支持UVC 支持USB OTG接口驱动 通过OTG扩展多个USB接口 应用层调用JNI函数 可以实现实时显示 图像拍摄 视频录制等功能 UVCCamera 听名字就知道使用U
  • 入门靶机渗透之Me And My Girlfriend

    靶场介绍 靶场下载地址 点击进入下载界面 下载 ova文件 在VMware中导入该虚拟机 导入完成后开启虚拟机 这个靶场背景告诉我们有一对恋人 即 Alice 和 Bob 这对情侣原本很浪漫 但自从 Alice 在一家私人公司 Ceban
  • Arduino IDE编译烧写ESP32 CAM

    一 安装Arduino IED 到官网下载IDE 二 安装ESP32 工具 打开菜单 文件 首选项 在设置页 附加开发板管理器网址 添加 https dl espressif com dl package esp32 index json
  • 异常检测的总结性介绍

    1 异常检测 1 1 什么是异常值 在机器学习中 异常检测和处理是一个比较小的分支 或者说 是机器学习的一个副产物 因为在一般的预测问题中 模型通常是对整体样本数据结构的一种表达方式 这种表达方式通常抓住的是整体样本一般性的性质 而那些在这
  • 练习四、把数组扁平;获取页面所用标签,并去重

    功能描述 题目一 将多层嵌套数组降低层级 比如 1 2 3 0 4 5 10 200 3 扁平到 1 2 3 0 4 5 10 200 3 题目二 获取页面所用标签 比如应含有html多种标签 并且去重 主要考点 题目一 判断是否为数组的方
  • Activity启动流程详解

    普通Activity创建也就是平常我们在代码中采用startActivity Intent intent 方法来创建Activity的方式 总体流程如下图 启动过程设计到两个进程 本地进程和系统服务进程 本地进程也就是我们的应用所在进程 系
  • 蓝桥 小明的游戏 反nim 博弈论

    题目描述 蓝桥公司给他们的员工准备了丰厚的奖金 公司主管小明并不希望发太多的奖金 他想把奖金留给智慧的人 于是他决定跟每一个员工玩一个游戏 规则如下 桌面上一共有 n 堆一元钱 双方轮流行动 由小明先行动 每次行动从某一堆钱中拿走若干元 至
  • 刷脸支付服务商的到来彻底将其颠覆

    互联网技术的发展 人工智能的不断升级 人们的生活正在变得越来越便捷 刷脸支付的优势就是体验度较好 用户较易接受 由于人脸识别根据摄像头的提高而提高 而且算法的改进会让刷脸核验在极短时间内完成 让用户觉得这技术很很便捷 而指纹 虹膜由于更多地
  • 活动回顾|多模态 AI 开发者的线下聚会@深圳站(内含福利)

    回顾来了 4 月 22 日 由 Jina AI 和 OpenMMLab 联合主办的 多模态 AI Office Hours 深圳站圆满结束 迎来了将近 60 位开发者的热情参与 现场不仅有别开生面的 开发者集市 供大家打卡赢取好礼 更有四场
  • 2023华为OD机试Python【最接近中位数的索引】

    前言 本题使用Python解答 如果需要Java版本答案 请参考以下链接 点击此处跳转 题目 假设我们有一个数组X和正整数K 满足以下表达式 X i x i 1 X i K 1 结果最接近于数组中位数的下标i 如果有多个i满足条件 请返回最
  • SuspendThread 造成程序死锁的一个例子

    msdn对SuspendThread 的说明 This function is primarily designed for use by debuggers It is not intended to be used for thread
  • 从零开始学GitHub【第三篇】

    GitHub 需要搭梯子么 印象中 GitHub 之前确实总是断断续续的访问不了 不过在13年初的时候有段时间最严重 一度被封了 当时李开复老师再也忍无可忍 公开发了一条抗议 GitHub 被封的微博 这事我印象很深 因为我是12年底加入的
  • Qt关于lineEdit的输入格式设置

    设置提示文字 ui gt lineEdit gt setPlaceholderText 联机游戏欢乐多 仅能输入整数 无限制 ui gt lineEdit gt setValidator 0 仅能输入整数 ui gt lineEdit gt
  • 移动端页面适配

    目录 一 移动端页面适配 1 什么是移动端页面适配 2 移动端页面适配的设计方向 二 0 适配 1 简介 2 缺陷 三 等比缩放 1 viewport 缩放方案 2 动态 REM 方案 3 VW 适配方案 4 适配方案对比 四 相对单位 e
  • 零基础想转行Python?新手应该注重学习哪方面的技术?

    大家都用Python做什么 做网站后台 有大量的成熟的框架 如django flask bottle tornado 写网络爬虫 Python写爬虫很简单 库很健全 科学计算 参加数学建模大赛 完全可以替代r语言和MATLAB 数据挖掘 机

随机推荐

  • mybatis sql xml文件读取源码分析

    在执行一个自定义sql语句时 dao对应的代理对象时如何找到sql 也就是dao的代理对象和sql之间的关联关系是如何建立的 在mybatis中的MybatisPlusAutoConfiguration类被 Configuration注解
  • 《DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks》论文阅读之DeblurGAN

    前言 现实生活中 大多数图片是模糊不清的 试想一下 追剧时视频不清晰 看着都很捉急 何况现实中好端端的一幅美景 美女也可以 被抓拍得不忍直视 瞬间暴躁 拍照时手抖 或者画面中的物体运动都会让画面模糊 女友辛辛苦苦摆好的各种Pose也将淹没在
  • uniapp设置动态背景图片

    ps 小程序在运行时 背景图片使用本地路径 在开发工具中可以正常显示 但是在真机调试时无法显示 解决 使用远程路径的方式
  • ros学习中遇到**[ERROR] [1552999261.807795886, 0.001000000]:**

    在ROS中学习SLAM及NAVIGATION时遇到以下问题 ERROR 1552999261 807795886 0 001000000 GazeboRosControlPlugin missing while using DefaultR
  • git开发必备命令

    使用git进行代码管理时 虽现有的开发工具对git的集成程度都比较高 但是会使用git命令行 在很多时候也能派上用场 况且技多不压身 以下是目前作为git项目开发者必备的命令 拉项目 开发一个项目 首先需要拉取该项目在本地 再切到本地开发分
  • TDP真的不是功耗?讲解“睿频”技术发展史

    在睿频2 0中有四个功耗限制等级 PL1 默频 可以长时间工作 此时的值就是TDP 注意红圈 PL2 可以以高于默认频率较长时间工作 有时间限制并不是无限的 PL3 偶尔可以超过的值 不过超过了会马上强制缩回 也就是功率处于跳动状态 PL4
  • 二十个经典的问题(一)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 问题一 在多线程环境中使用HashMap会有什么问题 在什么情况下使用get 方法会产生无限循环 HashMap本身没有什么问题 有没有问题取决于你是如何使用它的 比如 你
  • 嵌入式Linux子系统之网络子系统网卡驱动分析

    嵌入式Linux子系统之网络子系统网卡驱动分析 重要数据结构 struct net device 描述网卡驱动的结构 struct net device ops 设备操作统一接口操作集 struct sk buff 网络数据包描述结构 一般
  • Swift 之 JSONEncoder 和 JSONDecoder

    Swift 之 JSONEncoder 和 JSONDecoder 摘自官方文档 A type that can convert itself into and out of an external representation Codab
  • WSL2 BIOS已经开启了VT-x 但windows内安装显示不支持

    问题 安装安卓模拟器之后 wsl打开报错 已退出进程 代码为 4294967295 WSL 2问题解决 WSL 2与VMWare 或其他使用Intel VT x技术的虚拟机 虽然可以一起运行 但是安装WSL2后不禁用虚拟平台的话无法安装采用
  • TensorFlow2.0正式版安装

    文章目录 一 熟悉conda常用的cmd指令 二 TF2 0 CPU版本安装 1 新建TF2 0 CPU环境 2 进入TF 2C环境 3 在环境中安装TF2 0 CPU版本 4 测试TensorFlow是否安装成功 三 测试一个简单的Ten
  • C语言基础练习题(矩阵乘法)

    给定一个N阶矩阵A 输出A的M次幂 M是非负整数 例如 A 1 2 3 4 A的二次幂 7 10 15 22 输入格式 第一行是一个正整数N M 1 N 30 0 M 5 表示矩阵A的阶数和要求的幂数接下来N行 没行N个绝对值不超过10的非
  • 【Darknet】yolo层forward_yolo_layer函数详解

    最近在研究Darknet源码 这篇主要分享一下yolo层中forward yolo layer函数的源码 前言 神经网络是由很多层叠加起来的 Darknet也不例外 Darknet中的每一层都有make xxx layer forward
  • Ubuntu如何开启共享文件夹---亲测有效

    Ubuntu如何开启共享文件夹 亲测有效 一 安装VM Tools 选择安装VMware Tools 安装完后 在文件中会有一个压缩包 将压缩包移动到桌面或者其他路径进行解压缩 若出现没有足够的空间提取 1 使用归档管理器打开 2 提取 3
  • Docker 启动RabbitMQ 服务,外部不能正常访问

    今天在总结RabbitMQ消息队列服务器时 遇到一个小问题 服务器拉取RabbitMQ 服务器镜像正常 启动RabbitMQ 镜像服务正常 但通过外部访问RabbitMQ 管理端提示无法访问 第一步 检查服务器的防火墙状态 firewall
  • Linux网络编程基本知识

    Linux网络编程基本知识 from 实战Linux Socket 编程 1 套接口 include
  • linux掌握物理页面的分配和回收,系统软件课程设计指导书-2010-12

    2 本次课程设计要求阅读的Linux源代码版本为2 4 18 其他版本无效 3 结合操作系统基本原理进行代码分析 并进行详细分析和完整注释 注释越详细 成绩越好 5 设计型题目要按照要求完成全部算法 6 一定要充分地考虑个人的能力选择相应的
  • 更新和寻找最新的sid——持续更新中

    第一种 开始程序SAS中找到续订SAS软件 浏览找到最新的sid txt文件 确定 更新许可 确定 第二种 打开SAS 在编辑器中复制粘贴sid文件中第一个BEGIN下的 PROC SETINIT SAVE RUN 大概20行 点击上方的提
  • Vue-cli实现登录和重置功能

    Vue cli实现登录和重置功能 1 项目初始化 安装Vue脚手架 npm install g vue cli 通过Vue脚手架创建项目 在cmd命令行中输入 vue ui 使用图形化界面创建项目 配置Vue路由 配置Elment UI组件
  • Android使用Toolbar来添加右上角菜单

    好久没写东西了 最近学到了很多东西但是也非常忙 把一些知识积累一下 先上个效果图 很常见的一个需求 我们来看下怎么实现的 非常简单 activity main xml