Android Menu菜单
发布日期:2021-05-07 23:05:23 浏览次数:14 分类:原创文章

本文共 3120 字,大约阅读时间需要 10 分钟。



文章目录








1 menu 创建



  1. 资源文件并创建布局


在这里插入图片描述



  1. 添加菜单选项


<?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线程中创建并指定点击事件



  1. 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为显示}


  1. 点击事件 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; }}
上一篇:Android ViewPage使用
下一篇:Android Dialog 普通对话框 单选对话框 多选对话框

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月09日 11时30分54秒