android 弹出菜单
<!-- 定义基础布局LinearLayout --> <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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical"> <!-- 定义TextView控件 --> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="请按键盘物理菜单键,弹出选项菜单" /> </LinearLayout>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | package com.example.yanlei.yl2; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; //导入必备的包 public class MainActivity extends AppCompatActivity { //定义Menu中每个菜单选项的Id private final static int Menu_1 = Menu.FIRST; private final static int Menu_2 = Menu.FIRST + 1 ; private final static int Menu_3 = Menu.FIRST + 2 ; private final static int Menu_4 = Menu.FIRST + 3 ; private final static int Menu_5 = Menu.FIRST + 4 ; private final static int Menu_6 = Menu.FIRST + 5 ; private final static int Menu_7 = Menu.FIRST + 6 ; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); // 调用父类的onCreate方法 // 通过setContentView方法设置当前页面的布局文件为activity_main setContentView(R.layout.activity_main); } //创建Menu菜单的回调方法 public boolean onCreateOptionsMenu(Menu m) { //参数m就是拿到的当前Activity菜单对象 //想要给当前页面添加方法的话就add进去即可 //add方法的参数:add(分组id,itemid, 排序, 菜单文字) m.add( 0 , Menu_1, 0 , "编辑模式" ); m.add( 0 , Menu_2, 0 , "修改壁纸" ); m.add( 0 , Menu_3, 0 , "全局搜索" ); m.add( 0 , Menu_4, 0 , "桌面缩略图" ); m.add( 0 , Menu_5, 0 , "桌面效果" ); m.add( 0 , Menu_6, 0 , "系统设置" ); m.add( 0 , Menu_7, 0 , "用户信息" ); return super .onCreateOptionsMenu(m); } //Menu菜单选项的选项选择的回调事件 public boolean onOptionsItemSelected(MenuItem item) { //参数为用户选择的菜单选项对象 //根据菜单选项的id来执行相应的功能 switch (item.getItemId()) { case 1 : Toast.makeText( this , "你点击了编辑模式选项" , Toast.LENGTH_SHORT).show(); break ; case 2 : Toast.makeText( this , "你点击了修改壁纸" , Toast.LENGTH_SHORT).show(); break ; case 3 : Toast.makeText( this , "你点击了全局搜索" , Toast.LENGTH_SHORT).show(); break ; case 4 : Toast.makeText( this , "你点击了桌面缩略图" , Toast.LENGTH_SHORT).show(); break ; case 5 : Toast.makeText( this , "你点击了桌面效果" , Toast.LENGTH_SHORT).show(); break ; case 6 : Toast.makeText( this , "你点击了系统设置" , Toast.LENGTH_SHORT).show(); break ; case 7 : Toast.makeText( this , "你点击了用户信息" , Toast.LENGTH_SHORT).show(); break ; } return super .onOptionsItemSelected(item); } // 选项菜单关闭时的回调方法 public void onOptionsMenuClosed(Menu menu) { Log.e( "onOptionsMenuClosed" , "用户菜单关闭了" ); } // 菜单显示之前的回调方法 public boolean onPrepareOptionsMenu(Menu menu) { Log.e( "onPrepareOptionsMenu" , "用户菜单准备好被显示了" ); //方法返回true,就会显示Menu,否则Menu不会被显示 return true ; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2014-12-02 使用NPOI将DataTable生成Excel
2013-12-02 C# for AUTOCAD ActiveX获取图形对象坐标程序
2010-12-02 二调,分幅图打印(标准分幅土地利用现状图,耕地坡度分级图),图框工具
2010-12-02 二调,分幅图打印 边框注记距离内图框1毫米的程序
2010-12-02 通过ArcEngine获得注记的信息
2010-12-02 ArcEngine 获得注记文字的大小
2010-12-02 arcgis 平台实现字体左斜