首页 技术 正文
技术 2022年11月21日
0 收藏 796 点赞 3,650 浏览 3623 个字

第一种方式,使用Java方式

第二种方式,使用menu.xml

package liudeli.activity;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast;public class MenuActivity extends Activity { private static final int MENU_ITEM_CREATE = 0;
private static final int MENU_ITEM_DELETE = 1; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
} /**
* 第一步:菜单选项
* 创建菜单
* @param menu
* @return
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
/************************* 第一种方式,使用Java方式 ****************************/
/**
* 参数一: 组号
* 参数二: 唯一的ID号
* 参数三: 排序号
* 参数四: 标题
*/
MenuItem menu_item_create = menu.add(0, MENU_ITEM_CREATE, 0, "新建"); // 设置是否可点
menu_item_create.setEnabled(true); // 设置图标,菜单有时候加载不出来,但是不会报错
menu_item_create.setIcon(android.R.drawable.ic_menu_camera); /**
* 参数一: 组号
* 参数二: 唯一的ID号
* 参数三: 排序号
* 参数四: 标题
*/
menu.add(0, MENU_ITEM_DELETE, 0, "删除"); /**
* 添加子菜单
*/
SubMenu subMenu = menu.addSubMenu("子菜单");
subMenu.add(0, 11, 0, "子菜单1");
subMenu.add(0, 12, 0, "子菜单2"); /************************* 第二种方式,使用menu.xml ****************************/
// 菜单加载器
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu, menu); /************************* menu说明 ****************************/ /*menu.add("菜单一"); // 添加菜单
menu.add(1, Menu.FIRST, Menu.FIRST, "菜单二"); // 添加菜单 带组号...
int group1 = 1;
int group2 = 2;
menu.add(group1, 1, 1, "item1");// 添加菜单 带组号...
menu.add(group1, 2, 2, "item2");// 添加菜单 带组号...
menu.add(group2, 3, 3, "item3");// 添加菜单 带组号...
menu.add(group2, 4, 4, "item4");// 添加菜单 带组号... menu.removeGroup(group1); //删除一个组
menu.setGroupVisible(group1, false); //设置可见性
menu.setGroupEnabled(group2, false); //设置是否可点
menu.setGroupCheckable(group2, true, t); //设置一组菜单的勾选情况*/ return super.onCreateOptionsMenu(menu);
} /**
* 第二步:菜单的响应
* 处理menu的点击事件
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId(); /**
* 对应 第一种方式,使用Java方式
*/
switch (id) {
case MENU_ITEM_CREATE:
Toast.makeText(this, item.getTitle() + " , 创建", Toast.LENGTH_LONG).show();
break;
case MENU_ITEM_DELETE:
Toast.makeText(this, item.getTitle() + " , 删除", Toast.LENGTH_LONG).show();
break;
case 11: // 上面代码 itemid定义是11
Toast.makeText(this, item.getTitle() + " , 第一个子菜单", Toast.LENGTH_LONG).show();
break;
case 12: // 上面代码 itemid定义是12
Toast.makeText(this, item.getTitle() + " , 第二个子菜单", Toast.LENGTH_LONG).show();
break;
default:
break;
}
// item.getTitle() 获取上面代码设置的标题 item.getItemId() 获取上面代码设置的ItemId
// Toast.makeText(this, item.getTitle() + " , " + item.getItemId(), Toast.LENGTH_LONG).show(); /**
* 对应 第二种方式,使用menu.xml
*/
switch (id) {
case R.id.menu_create:
Toast.makeText(this, item.getTitle() + " , menu.xml创建", Toast.LENGTH_LONG).show();
break;
case R.id.menu_delete:
Toast.makeText(this, item.getTitle() + " , menu.xml删除", Toast.LENGTH_LONG).show();
break;
case R.id.menu_sub1:
Toast.makeText(this, item.getTitle() + " , menu.xml子菜单一", Toast.LENGTH_LONG).show();
break;
case R.id.menu_sub2:
Toast.makeText(this, item.getTitle() + " , menu.xml子菜单二", Toast.LENGTH_LONG).show();
break;
}
// item.getTitle() 获取上面代码设置的标题 item.getItemId() 获取上面代码设置的ItemId
// Toast.makeText(this, item.getTitle() + " , " + item.getItemId(), Toast.LENGTH_LONG).show(); return super.onOptionsItemSelected(item);
}}

Android-普通菜单Menu

menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item
android:id="@+id/menu_create"
android:icon="@android:drawable/ic_menu_add"
android:title="X新建">
</item> <item
android:id="@+id/menu_delete"
android:icon="@android:drawable/ic_menu_add"
android:title="X删除">
</item> <item android:title="X子菜单"> <menu> <item
android:id="@+id/menu_sub1"
android:icon="@android:drawable/ic_menu_add"
android:title="X子菜单1">
</item> <item
android:id="@+id/menu_sub2"
android:icon="@android:drawable/ic_menu_add"
android:title="X子菜单2">
</item> </menu> </item></menu>

效果图:

Android-普通菜单Menu

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731