5、从头学Android之SubMenu子菜单

 

子菜单

子菜单就是将相同功能的分组进行多级显示的一种菜单。

创建子菜单的步骤:

1、  覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单

2、  调用SubMenu的add()方法,添加子菜单

3、  覆盖onContextItemSelected()方法,响应子菜单的单击事件

 

至于onCreateOptionsMenu()方法在前面已做过介绍,现在来看下Menu的addSubMenu()方法,与add()方法一样它有四个重载方法,参数也同出一辙。在这也就不再多说明了

public abstract SubMenu addSubMenu (int groupId, int itemId, int order, CharSequence title)

 

public abstract SubMenu addSubMenu (int groupId, int itemId, int order, int titleRes)

 

public abstract SubMenu addSubMenu (CharSequence title)

 

public abstract SubMenu addSubMenu (int titleRes)

这四个函数的返回对象都是SubMenu,那么我们就来看下SubMenu吧,随便来了解它的一些属性及方法:

SubMenu是实现Menu的

比较常用的方法有:setHeaderIcon()、setHeaderTitle()

下面通过两个实例来熟悉下SubMenu

 

实例1:

package com.jiahui.activity;

import java.lang.reflect.Field;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;

public class SubMenuDemoActivity extends Activity {

	private static final int ITEM1 = Menu.FIRST;
	private static final int ITEM2 = Menu.FIRST + 1;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}

	public boolean onCreateOptionsMenu(Menu menu) {

		SubMenu file = menu.addSubMenu("文件");
		SubMenu edit = menu.addSubMenu("编辑");
		
		file.add(0, ITEM1, 0, "新建");
		file.add(0, ITEM2, 0, "打开");
		return true;
	}

	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case ITEM1:
			setTitle("新建文件");
			break;

		case ITEM2:
			setTitle("打开文件");
			break;
		}

		return true;
	}

}


效果:

实例2:

package com.jiahui.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.SubMenu;

public class SubMenuDemo_2Activity extends Activity {
   
	private static final int UPLOAD=Menu.FIRST;
	
	private static final int DOWNLOAD=Menu.FIRST+1;
	
	
	private static final int SUB_UPLOAD_A=Menu.FIRST+2;
	private static final int SUB_UPLOAD_B=Menu.FIRST+3;
	
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		
		
		SubMenu uploadSubMenu=menu.addSubMenu(0, UPLOAD, 0, "上传");	
		uploadSubMenu.setIcon(R.drawable.upload);
		
		uploadSubMenu.setHeaderIcon(R.drawable.upload);//设置子菜单的标题
		uploadSubMenu.setHeaderTitle("上传参数设置");//设置子菜单的标题  默认为“上传”
		uploadSubMenu.add(0, SUB_UPLOAD_A, 0, "上传参数1");
		uploadSubMenu.add(0, SUB_UPLOAD_B, 0, "上传参数2");
		
		
		SubMenu downloadSubMenu=menu.addSubMenu(0, DOWNLOAD, 0, "下载");
		downloadSubMenu.setIcon(R.drawable.download);
		
		return super.onCreateOptionsMenu(menu);
	}
    
    
    
}



 

 

效果:

 

 

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值