创建选项菜单的步骤:
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; } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。