
Android Menu菜单
发布日期:2021-05-07 23:05:23
浏览次数:14
分类:原创文章
本文共 3120 字,大约阅读时间需要 10 分钟。
文章目录
1 menu 创建
- 资源文件并创建布局
- 添加菜单选项
<?xml version="1.0" encoding="utf-8"?><menu xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/add_item" android:title="添加" /> <item android:id="@+id/del_item" android:title="删除"/> <item android:id="@+id/modify_item" android:title="修改" /> <item android:id="@+id/quit_app" android:title="退出" /></menu>
2 在UI线程中创建并指定点击事件
public boolean onCreateOptionsMenu(Menu menu)
- 要创建选项菜单,就需要重写该方法,在方法中对menu对象进行操作
- 系统创建选项菜单时调用的方法,参数menu就是Activity的选项菜单对象,返回值为true表示需要显示菜单,否则菜单不显示
// 1. 显示菜单, 重写OnCreateOptionMenu@Overridepublic boolean onCreateOptionsMenu(Menu menu) { // 获得当前菜单对象, 加载布局文件 getMenuInflater().inflate(R.menu.main_menu, menu); return true; // true为显示}
- 点击事件
public boolean onOptionsItemSelected(MenuItem item)
item参数是被单击的菜单项,返回值:
- 如果任务全部已经处理完,则返回true
- 如果希望将菜单项点击的事件传递下去,继续触发其他处理,则返回false
- 如果采用
return super.onOptionsItemSelected(item);
则返回值为flase,即系统缺省返回flase
// 2. 为菜单增加响应事件@Overridepublic boolean onOptionsItemSelected(@NonNull MenuItem item) { // 使用item的id判断哪一个被点击 switch(item.getItemId()) { case R.id.add_item : Toast.makeText(MainActivity.this, "点击了添加按钮", Toast.LENGTH_SHORT).show(); break; case R.id.del_item : Toast.makeText(MainActivity.this, "点击删除按钮", Toast.LENGTH_SHORT).show(); break; case R.id.modify_item: Toast.makeText(MainActivity.this, "点击了修改按钮", Toast.LENGTH_SHORT).show(); break; case R.id.quit_app: finish(); break; default: // 暂不处理 } return true;}
UI代码
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 { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 1. 显示菜单, 重写OnCreateOptionMenu @Override public boolean onCreateOptionsMenu(Menu menu) { // 获得当前菜单对象, 加载布局文件 getMenuInflater().inflate(R.menu.main_menu, menu); return true; // true为显示 } // 2. 为菜单增加响应事件 @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { // 使用item的id判断哪一个被点击 switch(item.getItemId()) { case R.id.add_item : Toast.makeText(MainActivity.this, "点击了添加按钮", Toast.LENGTH_SHORT).show(); break; case R.id.del_item : Toast.makeText(MainActivity.this, "点击删除按钮", Toast.LENGTH_SHORT).show(); break; case R.id.modify_item: Toast.makeText(MainActivity.this, "点击了修改按钮", Toast.LENGTH_SHORT).show(); break; case R.id.quit_app: finish(); break; default: // 暂不处理 } return true; }}
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月09日 11时30分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2020第十五届全国大学生智能汽车竞赛——4X4矩阵键盘+Flash调参系统
2019-03-05
合并两个有序数组
2019-03-05
Ubuntu 环境下使用中文输入法
2019-03-05
小白学习Vue(?)--model选项的使用(自定义组件文本框双向绑定)
2019-03-05
聊聊我的五一小假期
2019-03-05
面向对象之异常处理:多路捕获
2019-03-05
Python简易五子棋
2019-03-05
MySQL8.0.19 JDBC下载与使用
2019-03-05
Vue新建项目——页面初始化
2019-03-05
Cent OS 7.6 服务器软件安装(这篇博客主要是为了方便我配置云主机的)
2019-03-05
MySQL使用系列文章
2019-03-05
Node.js包使用系列(一)——修改NPM全局下载和缓存路径
2019-03-05
TDengine使用(一)——TDengine下载与安装
2019-03-05
ubuntu和windows之间无法复制粘贴
2019-03-05
启动加载器BootLoader
2019-03-05
力扣239. 滑动窗口最大值
2019-03-05
史上最全Vue的组件传值
2019-03-05
6.14编一个程序,将两个字符串s1和s2比较,不要用strcmp函数。
2019-03-05
如何解决vscode检测到#include错误,请更新includePath。
2019-03-05