IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 高级UI设计之菜单 -> 正文阅读

[移动开发]高级UI设计之菜单

菜单是应用程序中非常重要的组成部分,能够在不占用界面空间的前提下,为应用程序提供了统一的功能和设置界面,并为程序开发人员提供了易于使用的编程接口
Android系统支持三种菜单

在这里插入图片描述
在这里插入图片描述

Options Menu(选项菜单)

Android3.0版本以前的显示效果如左图所示(需要单击Menu键弹出菜单)
Android3.0版本以后的显示效果如右图所示(需要单击标题栏的…)
在这里插入图片描述
在这里插入图片描述

Android应用程序中使用选项菜单,需要重写Activity中的两个方法:
public boolean onCreateOptionsMenu(Menu menu):调用OptionMenu,在该方法中完成菜单初始化;
public boolean onOptionsltemSelected(Menultem item):菜单项被选中时触发,在该方法中完成事件处理。
在这里插入图片描述

Android中菜单项的生成有两种方式:
编写菜单项XML文件,并通过在onCreate OptionsMenu()函数中调用getMenulnflater().inflate()函数来生成一个菜单。使用该方式可以将菜单内容和代码进行分离,有利于后续菜单的调整,但是这种方式在菜单中为选项添加图标比较困难。
在Java代码中编写菜单生成代码,这种方式虽然在菜单的生成方式上较前一种稍显复杂,但是可以生成形式更为丰富的菜单项。
Context Menu(上下文菜单)
Context Menu(上下文菜单)类似于Windows中的右键快捷菜单,但两者的区别在于Android中是用长按来显示一个ContextMenu的。
Android提供了Java代码和标准的XML菜单文件两种方式来定义菜单及菜单项。
如果要在Android的应用程序中使用ContextMenu(上下文菜单),就需要使用以下步骤实现。
在这里插入图片描述

重写onCreateContextMenu()方法

通过重写每个Activity类中的onCreateContextMenu()方法来加载菜单,该方法的原型如下:
在这里插入图片描述

第一个参数menu为要加载的上下文菜单。
第二个参数v为与菜单相关的组件。
第三个参数menulnfo是菜单的附加信息。
当用户单击某个组件时,该组件会把自己传递到第二个参数中,此时就可以通过View对象中的getld()函数来得到用户单击组件的ID,从而创建不同的上下文菜单。

加载菜单的方式

方法一:XML菜单文件
首先,在res/menu文件夹下创建XML菜单资源文件,并定义菜单项。如果没有menu文件夹,就需要开发者创建。
menu>:用来定义菜单,包含菜单项。必须有一个menu>作为XML的根元素,其中可包含一个或多个item>和group>元素。
item>:定义菜单项,每个item>都表示一个菜单项,还可以内嵌menu>元素,用来创建子菜单。
group>:此元素是可选的、不可见的,用来对菜单项进行分类,使他们可以共享相同的属性。

item>元素常用的属性

id : 表示菜单项的唯一资源ID,用来识别菜单项
icon: 表示菜单项的显示图标,可以指定一个图片资源。
title:表示菜单项的显示标题,可以指定字符串资源。
在这里插入图片描述

其次,在onCreateContextMenu()方法中使用getMenulnflater.inflate()方法填充菜单资源,即将XML菜单资源转换成一个可编程的对象。其代码如下:
在这里插入图片描述

方法二:java代码

通过代码动态添加菜单项可以直接使用onCreateOptionsMenu()方法的menu参数,并调用add()方法添加菜单项。即:
menu.add(菜单项组号,菜单项ID,菜单项排序号,菜单项标题)
其中菜单项的排序号如果是按照菜单项的添加顺序排序,该参数的值可以都为0。
直接在onCreateContextMenu()方法中用Java代码实现,实现代码如下:
直接在onCreateContextMenu()方法中用Java代码实现,实现代码如下:
在这里插入图片描述

Context Menu(上下文菜单)

重写onCreateContextMenu()方法
为View组件注册ContextMenu

TextView tvinfo=(TextView)this.findViewByld(R.id.tvinfo);
this.registerForContextMenu(tvinfo);

重写onContextltemSelected()方法
ContextMenu菜单建成后,需要给ContextMenu指定监听器为每个菜单项添加执行功能,即重写onContextltemSelected()方法,
操作过程见视频资源
欢迎大家加我微信交流讨论(请备注csdn上添加)
在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:18:02  更:2021-10-21 12:20:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:55:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码