Android菜单(上下文菜单)(选项菜单)

news/2024/11/30 6:52:43/

菜单资源文件通常放置在res\menu目录下,在创建项目时,默认不自动创建menu目录,所以需要手动创建。Android Resource Directory->value menu

菜单资源根元素通常是<menu></menu>标记,子元素为<item></item>和<group></group>

<item></item>标记常用属性:

android:id 用于为菜单设置ID
android:title 用于为菜单项设置标题
android:alphabeticShortcut 用于为菜单项指定字符快捷键
android:numericShortcut  用于为菜单项指定数字快捷键
android:icon  用于为菜单项指定图标
android:enable  用于指定该菜单项是否可用
android:checkable  用于指定该菜单项是否可选
android:checked  用于指定该菜单项是否选中
android:visible  用于指定该菜单项是否可见

<group></group>标记常用属性:

android:id 用于为菜单组设置ID
android:heckableBehavior 用于为指定菜单组选择行为,值可以为 none(不可选) all(多选) single(单选)
android:menuCategory  用于为指定菜单组进行分类,指定优先级,值可以为container、system、secondary和alternative
android:enable  用于为指定菜单组中全部菜单项是否可用
android:visible  用于为指定菜单组中全部菜单项是否可见

<item>标记中还可以包含<menu>标记,用于显示子菜单

<group>标记中可有多个<item>标记,用于组成菜单组

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:title="item1"></item><item android:title="item2"><menu><item android:title="item2-1"/><item android:title="item2-2"/></menu></item><group><item android:title="item3"/><item android:title="item4"/></group>
</menu>

1.上下文菜单  长按注册的控件显示菜单

public class MainActivity extends AppCompatActivity {protected void onCreate(Bundle savedInstanceState) {... ...TextView textView=findViewById(R.id.textView);//注册上下文菜单  长按注册的控件显示菜单registerForContextMenu(textView);}public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {//用于创建菜单(上下文菜单)MenuInflater menuInflater=new MenuInflater(MainActivity.this);menuInflater.inflate(R.menu.menu1,menu);}public boolean onContextItemSelected(@NonNull MenuItem item) {//用于选择菜单项(上下文菜单)int groupId=item.getGroupId();int itemId=item.getItemId();if(groupId==R.id.~){~}if(itemId==R.id.~){~}return super.onContextItemSelected(item);}
}

2.选项菜单(隐藏标题栏将无法使用)  点击标题最右侧三个点显示菜单

public class MainActivity extends AppCompatActivity {protected void onCreate(Bundle savedInstanceState) {... ...}public boolean onCreateOptionsMenu(Menu menu) {//用于创建菜单(选项菜单)MenuInflater menuInflater=new MenuInflater(MainActivity.this);menuInflater.inflate(R.menu.menu1,menu);return super.onCreateOptionsMenu(menu);}public boolean onOptionsItemSelected(@NonNull MenuItem item) {//用于选择菜单项(选项菜单)int groupId=item.getGroupId();int itemId=item.getItemId();if(groupId==R.id.~){~}if(itemId==R.id.~){~}return super.onOptionsItemSelected(item);}
}


http://www.ppmy.cn/news/1102164.html

相关文章

End-to-end 3D Human Pose Estimation with Transformer

基于Transformer的端到端三维人体姿态估计 摘要 基于Transformer的架构已经成为自然语言处理中的常见选择&#xff0c;并且现在正在计算机视觉任务中实现SOTA性能&#xff0c;例如图像分类&#xff0c;对象检测。然而&#xff0c;卷积方法在3D人体姿态估计的许多方法中仍然保…

java面试题-MySQL相关面试题

MySQL相关面试题 面试官&#xff1a;MySQL中&#xff0c;如何定位慢查询? 候选人&#xff1a; 嗯~&#xff0c;我们当时做压测的时候有的接口非常的慢&#xff0c;接口的响应时间超过了2秒以上&#xff0c;因为我们当时的系统部署了运维的监控系统Skywalking &#xff0c;在展…

第4章_瑞萨MCU零基础入门系列教程之瑞萨 MCU 源码设计规范

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

Java集合面试

文章目录 Java集合框架说说有哪些常见的集合&#xff1f;ArrayList和LinkedList的区别&#xff1f;List和Set的区别&#xff1f;HashMap的数据结构&#xff1f;把你了解的所有都讲一讲&#xff1f;数据结构&#xff1a; put流程Hashmap的resize方法的执行过程&#xff1f;get流…

STM32WB55开发(3)----断开蓝牙连接

STM32WB55开发----3.断开蓝牙连接 概述硬件准备视频教学样品申请选择芯片型号配置时钟源配置时钟树RTC时钟配置查看开启STM32_WPAN条件配置HSEM配置IPCC配置RTC启动RF开启蓝牙LED配置设置工程信息工程文件设置参考文档SVCCTL_App_NotificationACI_HAL_GET_LINK_STATUShci_disco…

设计模式-组合模式(Composite)

文章目录 前言一、组合模式的概念二、组合模式的优缺点1.优点2.缺点 三、组合模式的实现总结 前言 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你将对象组合成树状结构以表示“整体-部分”的层次结构。组合模式使得客户端可以统…

发送HTTP请求

HTTP请求是一种客户端向服务器发送请求的协议。它是基于TCP/IP协议的应用层协议&#xff0c;用于在Web浏览器和Web服务器之间传输数据。 HTTP请求由以下几个部分组成&#xff1a; 请求行&#xff1a;包含请求方法、请求的URL和HTTP协议的版本。常见的请求方法有GET、POST、PUT、…

Golang开发--channel的使用

在 Go 语言中&#xff0c;channel&#xff08;通道&#xff09;是一种用于在 goroutine 之间进行通信和同步的并发原语。它提供了一种安全且简单的方式来传递数据。 通道的详细描述和使用方法 1.定义通道&#xff1a; 通道是通过使用 make 函数来创建的。通道有特定的类型&am…