创建选项菜单的步骤:
1、覆盖Activity的onCreateOptionsMenu(Menu menu)函数
2、调用menu的add()方法添加菜单项(MenuItem),调用MenuItem的setIcon()方法为菜单设置图标
=================我是一条分割线==========================================
public boolean onCreateOptionsMenu (Menu menu)
返回值:布尔值,表示是否显示该函数中设置的菜单
参数:Menu对象
onCreateOptionsMenu函数仅在第一次使用菜单时被调用一次
在这个函数可以通过Menu对象的add()方法添加菜单子项
重载:
1.
public abstract MenuItem add (CharSequence title)
指定菜单上的显示文字
这种方式添加的菜单是默认的垂直方式排列
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add("菜单");
menu.add("菜单2");
return true;
}
2.
public abstract MenuItem add (int groupId, int itemId, int order, int titleRes)
groudId:组ID,用以批量地对菜单子项进行处理和排序
itemId:子项ID,是每一个菜单子项的唯一标识
order:指定菜单子项在选项菜单中的排列顺序
titlerRes: 菜单标题的引用
3.
public abstract MenuItem add (int titleRes)
titlerRes: 菜单标题的引用,通过string.xml中添加
<string name="titileRes">TitleRes</string>
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(R.string.titileRes);
return true;
}
4.
public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title)
这个是最常用的方法
groudId:组ID,用以批量地对菜单子项进行处理和排序
itemId:子项ID,是每一个菜单子项的唯一标识
order:指定菜单子项在选项菜单中的排列顺序
titler: 菜单标题
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(0, ITEM, 0, "开始");
menu.add(0, ITME2, 0, "退出");
return true;
}
设置图标
itemAdd.setIcon(R.drawable.p1);
================还是一条分割线====================================
当菜单被选择时,可以通过覆盖Activity的onOptionsItemSeleted()方法来响应事件
于是可以酱紫,例子
public class ListTest extends Activity {
private static final int click1 = Menu.FIRST;
private static final int click2 = Menu.FIRST + 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
super.onCreateOptionsMenu(menu);
menu.add(0,click1,0,"戳我");
menu.add(0,click2,0,"还戳我");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case click1:
setTitle("被戳了一下!");
break;
case click2:
setTitle("又被戳了!");
break;
}
return true;
}
}