目录

基于Empty Activity 模板创建安装应用 XMLMenu

将图片素材拷贝到drawable目录

打开字符串资源文件strings.xml输入代码:​编辑

打开主布局资源文件activity_main.xml输入代码

在res目录下创建menu目录,在里面创建菜单配置文件 main.xml输入代码:

创建主界面类 MainActivit输入代码

运行程序查看效果:


基于Empty Activity 模板创建安装应用 XMLMenu

将图片素材拷贝到drawable目录

打开字符串资源文件strings.xml输入代码:

具体代码:

<resources><string name="app_name">利用XML配置生成菜单</string><string name="file_menu">文件</string><string name="new_file">新建文件</string><string name="open_file">打开文件</string><string name="save_file">保存文件</string><string name="exit">退出程序</string><string name="edit_menu">编辑</string><string name="cut">剪切</string><string name="copy">复制</string><string name="paste">粘贴</string>
</resources>

打开主布局资源文件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/background"tools:context=".MainActivity"></LinearLayout>

res目录下创建menu目录,在里面创建菜单配置文件 main.xml输入代码:

具体代码:

<menu 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"tools:context="net.hw.xml_menu.MainActivity"><itemandroid:id="@+id/file_menu"android:title="@string/file_menu"app:showAsAction="collapseActionView"><menu><itemandroid:id="@+id/new_file_menu_item"android:icon="@drawable/new_file"android:title="@string/new_file"app:showAsAction="ifRoom|withText" /><itemandroid:id="@+id/open_file_menu_item"android:icon="@drawable/open_file"android:title="@string/open_file"app:showAsAction="ifRoom|withText" /><itemandroid:id="@+id/save_file_menu_item"android:icon="@drawable/save_file"android:title="@string/save_file"app:showAsAction="ifRoom|withText" /><itemandroid:id="@+id/exit_app_menu_item"android:icon="@drawable/exit_app"android:title="@string/exit"app:showAsAction="ifRoom|withText" /></menu></item><itemandroid:id="@+id/edit_menu"android:title="@string/edit_menu"app:showAsAction="collapseActionView"><menu><itemandroid:id="@+id/cut_menu_item"android:icon="@drawable/cut"android:title="@string/cut"app:showAsAction="ifRoom|withText" /><itemandroid:id="@+id/copy_menu_item"android:icon="@drawable/copy"android:title="@string/copy"app:showAsAction="ifRoom|withText" /><itemandroid:id="@+id/paste_menu_item"android:icon="@drawable/paste"android:title="@string/paste"app:showAsAction="ifRoom|withText" /></menu></item>
</menu>

创建主界面类 MainActivit输入代码

创建选项菜单,在里面利用getMenuInflator()获取菜单填充器,调用其inflate()方法将菜单配置文件生成选项菜单,第一个参数是菜单配置文件标识,第二个参数是选项菜单对象

​​​​​​​

具体代码:

package net.zyt.xml_menu;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}//利用菜单配置文件设置用户界面@Overridepublic boolean onCreateOptionsMenu(Menu menu) {//利用菜单填充器将菜单配置文件填充成菜单getMenuInflater().inflate(R.menu.main,menu);return true;}/*** 上下文菜单项选择事件处理方法** @param item* @return*/@Overridepublic boolean onOptionsItemSelected(@NonNull MenuItem item) {// 判断用户选择了哪个菜单项switch (item.getItemId()) {case R.id.new_file_menu_item:Toast.makeText(this, "你单击了【新建文件】菜单项!", Toast.LENGTH_SHORT).show();break;case  R.id.open_file_menu_item:Toast.makeText(this, "你单击了【打开文件】菜单项!", Toast.LENGTH_SHORT).show();break;case  R.id.save_file_menu_item:Toast.makeText(this, "你单击了【保存文件】菜单项!", Toast.LENGTH_SHORT).show();break;case  R.id.exit_app_menu_item:finish();break;case  R.id.cut_menu_item:Toast.makeText(this, "你单击了【剪切】菜单项!", Toast.LENGTH_SHORT).show();break;case R.id.copy_menu_item:Toast.makeText(this, "你单击了【复制】菜单项!", Toast.LENGTH_SHORT).show();break;case R.id.paste_menu_item:Toast.makeText(this, "你单击了【粘贴】菜单项!", Toast.LENGTH_SHORT).show();break;}return true;}
}

运行程序查看效果:

利用菜单配置文件生成菜单相关推荐

  1. QMenu 设置菜单图标 生成菜单树

    效果图 源码 .h 文件 protected slots:void onMenuTriggered(QAction*); .cpp 文件 // 菜单QMenu *pMenu = new QMenu(t ...

  2. Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法...

    以User为操作对象 package com.swift.jdbc;public class User {private Long user_id; private String user_code; ...

  3. Menu详解(二):利用XML生成菜单和子菜单

    前言:上篇,我们说了有关代码生成菜单和子菜单的方法,这里我们再讲讲有关利用XML生成菜单和子菜单的问题. 业精于勤,荒于嬉,行成于思,毁于随 (日拱一卒) 系列文章: 1.<Menu详解(一): ...

  4. C# 使用数据库和MenuStrip动态生成菜单

    C# 利用数据库和MenuStrip控件动态生成菜单,设计如图一,拖一个Menustrip控件. 设计实现如下: 1.数据库设计: 列名 数据类型 允许NULL值 描述 MODULENAME nvar ...

  5. Extjs4.0 开发笔记-desktop开始菜单动态生成方法

    desktop开始菜单动态生成方法: Desktop.html中,在<scripts>中的Ext.onReady之前添加如下: var mArr = [];//这里是保存显示模块的数组va ...

  6. Django 权限管理-后台根据用户权限动态生成菜单

    Django权限管理 实现目标: 1.管理用户,添加角色,用户关联角色 2.添加权限.角色关联权限 3.添加动作.权限关联动作 4.添加菜单.权限关联菜单 实现动态生成用户权限菜单(可设置多级菜单嵌套 ...

  7. vfp生成菜单时文件不存在_如何在VFP项目中创建菜单

    接上面两篇文章! 本文,我们来学习一下如何在VFP项目中创建菜单! 打开上文所讲的简单的项目文件,切换到"其他"选项卡! 如上图,选择"菜单"一项,之后点击&q ...

  8. react-contexify 右键菜单动态生成

    react-contexify右键菜单动态生成 如果菜单数量少,并且没有其他地方需要共用菜单列表,建议参考react-contexify的右键菜单属性disabled不起作用 此文中处理方法相对快捷 ...

  9. fastadmin相关操作(生成CRUD,生成菜单,关闭验证码,调试模式,开启表格用户查看权限)

    一.一键生成CRUD 在fastadmin页面找到插件,下载"在线命令" 在"在线命令管理中",点击"添加"按钮,选择主表,自定义控制器,选 ...

最新文章

  1. To-do List
  2. C# 9.0中的新增功能 - 译
  3. 智慧城市需要百姓智慧
  4. bzoj3438: 小M的作物
  5. matlab 矩阵数据生成.csv表格
  6. Hadoop学习之MapReduce
  7. JedisConnectionException: java.Net.SocketTimeoutException: Read timed
  8. python中星号数字乘字符串_Python系列-数字和字符串
  9. Rust+Yew之hello world
  10. 【Oracle】并行等待之PX Deq Credit: need buffer
  11. SAP R3 display Vendor list, MKVZ .
  12. 瑞萨单片机-PWM输出
  13. JUC之集合安全问题
  14. 详解Linux基础网络服务之DNS域名解析
  15. 基于域对抗图卷积网络的多变环境下故障诊断
  16. js基础系列之函数调用与this
  17. python代理池_进击:用Python搭建高匿代理池
  18. TensorFlow Object Detection API 多GPU 卡平行计算,加速模型训练速度教学
  19. Python 机器学习/深度学习/算法专栏 - 导读目录
  20. TTS离线语音合成应用方案【一】

热门文章

  1. October——Just believe youself,you really did good job
  2. 王亟亟的Python学习之路(五)-dictionary,set,函数,函数参数
  3. python3爬取网易云歌单数据清洗_实例 | 使用网易云音乐数据演示数据整合与数据清洗...
  4. 2019猪事顺遂,RAKsmart百万红包免费送!!!
  5. flash php个人站_PHP Flash整站系统
  6. 仿QQ弹出窗口 gggggggggggg
  7. android progressbar 代码,android ProgressBar纯java样式修改
  8. 六十五、Spark-综合案例(搜狗搜索日志分析)
  9. python adb开发-adb常见用法
  10. 数字调制(ASK、FSK、PSK)