菜单的新建与点击事件的处理

本文详细介绍了Android中菜单的创建方法,包括代码方式和布局文件方式,并阐述了如何处理菜单项的点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、菜单的新建

菜单的新建有两种方式:代码方式和布局文件方式。无论是哪种方式,都需要重写onCreateOptionsMenu(...)方法

1、代码方式

public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(0,MENU_ID_NEW,0,"新建");
		menu.add(0,MENU_ID_DELETE,0,"删除");
		SubMenu subMenu = menu.addSubMenu("子菜单");
		subMenu.add(1,MENU_ID_SUB1,0,"子菜单1");
		subMenu.add(1,MENU_ID_SUB2,0,"子菜单2");
		

		return super.onCreateOptionsMenu(menu);
	}


2、xml文件方式

1)在/res/menu/先新建你所要使用的布局文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/menu_xml_zzt"
        android:title="章泽天"
        android:icon="@drawable/b"
        />
    <item 
        android:id="@+id/menu_xml_delete"
        android:title="删除"
        android:icon="@android:drawable/ic_menu_delete"
        />
    <item android:id="@+id/menu_xml_sub"
        android:title="子菜单"
        >
        <menu>
            <item 
                android:id="@+id/menu_xml_sub1"
                android:title="子菜单11"
                />
           <item 
                android:id="@+id/menu_xml_sub2"
                android:title="子菜单22"
                />
        </menu>
    </item>

</menu>

2)重写onCreateOptionsMenu(...)方法

@Override
	public boolean onCreateOptionsMenu(Menu menu) {
	
		
		MenuInflater mInflater = getMenuInflater();
		mInflater.inflate(R.menu.menu, menu);
		
		return super.onCreateOptionsMenu(menu);
	}


二、点击事件的处理

无论是通过代码方式来实现菜单还是通过布局文件的方式来实现菜单,其点击事件的处理都是一样的,即都是通过重写onOptionItemsSelected(...)方法来实现

@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		int id = item.getItemId();
				switch (id) {
				case MENU_ID_NEW :
					Toast.makeText(this, "您选择了: " + item.getTitle(), 1).show();
					break;

				case MENU_ID_DELETE :
					Toast.makeText(this, "您选择了: " + item.getTitle(), 1).show();
					break;
					
				case MENU_ID_SUB1 :
					Toast.makeText(this, "您选择了: " + item.getTitle(), 1).show();
					break;
					
				case MENU_ID_SUB2 :
					Toast.makeText(this, "您选择了: " + item.getTitle(), 1).show();
					break;
				default:
					Toast.makeText(this, "你选择了: " + item.getTitle(), 1).show();
					break;
				}
		
		return super.onOptionsItemSelected(item);
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值