Android中创建子菜单的步骤:
1、覆盖Activity中的onCreateOptionMenu()方法,调用Menu的addSubMenu()方法添加子菜单。
2、调用SubMenu的add方法,添加子菜单。
3、覆盖onContextItemSelected()方法,响应子菜单。
来看个小例子:
package com.yangzi.submenu;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
public class MainActivity extends Activity {
//子菜单编号
private static final int ITEM1 = Menu.FIRST;
private static final int ITEM2 = Menu.FIRST+1;
private static final int ITEM3 = Menu.FIRST+3;
private static final int ITEM4 = Menu.FIRST+4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/*
* 覆写onCreateOptionMenu方法,添加菜单,及子菜单
*
* */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//添加菜单选项
SubMenu file = menu.addSubMenu("文件");
SubMenu edit = menu.addSubMenu("编辑");
//添加子菜单选项
/*
* add方法的参数说明:
* 参数一:group ID(int) :组ID,用于标示该子选项属于哪一个组
* 参数二:item ID(int) :子选项ID,用于标示该子选项
* 参数三:order ID(int): 显示顺序,用于标示该子选项显示顺序,默认为0,表示按添加顺序显示
* 参数四:title (String): 用于定义该子选项的显示文字
*
* */
file.add(0,ITEM1,0,"新建");
file.add(0,ITEM2,0,"打开");
edit.add(1,ITEM3,0,"复制");
edit.add(1,4,ITEM4,"粘贴");
return true;
}
/*
* 覆写该方法,添加相应的菜单相应事件
*
* */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
/*
* 根据选择的子选项(通过item ID来区分),进行不同的响应
*
* 这里使用的颜色资源要在res/values文件夹内的color.xml文件中声明
*
* */
switch (item.getItemId()) {
case ITEM1:
setTitle("新建文件");
break;
case ITEM2:
setTitle("打开文件");
break;
case ITEM3:
setTitle("复制编辑");
break;
case ITEM4:
setTitle("粘贴编辑");
default:
break;
}
return true;
}
}
自己动手试试,看看效果吧!
时间: 2024-10-28 10:32:15