android 三类菜单(Option) (Context) (SubMenu)学习
2017-04-11 11:36
429 查看
在Android系统中,菜单可以分为三类:选项菜单(Option Menu),上下文菜单(Context Menu)以及子菜单(Sub Menu)。
一.选项菜单(Option Menu)
创建选项菜单的步骤:
1.覆盖Activity的onCreateOptionMenu(Menu menu)方法,当菜单第一次被打开时调用
2.调用Menu的add( )方法添加菜单项(MenuItem),同时可以调用MenuItem的setIcon( )方法来为菜单项设置图标
3.当菜单项(MenuItem)被选择时,覆盖Activity的onOptionsItemSelected(MenuItem item)来响应事件
选项菜单的实例:
效果图:
二.上下文菜单(Context Menu)
创建上下文菜单的步骤:
1.覆盖Activity的onCreateContextMenu(Menu menu)方法,调用Menu的add( )方法添加菜单项(MenuItem).
2.覆盖Activity的oonContextItemSelected(MenuItem item)来响应事件
3.调用registerForContextMenu( )方法来为视图注册上下文菜单
上下文菜单的实例(按住“测试Context Menu”2秒,就会出现上下文菜单):
效果图:
三.子菜单(Sub Menu)
创建子菜单的步骤:
1.覆盖Activity的onCreateOptionMenu(Menu menu)方法,调用Menu的addSubMenu( )方法来添加子菜单(Sub Menu)
2.调用SubMenu的add( )方法来添加子菜单(Sub Menu)
3.覆盖onContextItemSelect( )方法来响应菜单单击事件
子菜单的实例:
效果图:
注:menu.add的方法中的参数:
1.int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。可以用到的方法有:
removeGroup(id)
setGroupCheckable(id, checkable, exclusive)
setGroupEnabled(id,boolean enabled)
setGroupVisible(id,visible)
2.int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个item ID对应一个Menu中的选项。在后面使用菜单的时候,就是靠这个item ID来判断,你选中的是哪个选项。
3.int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的顺序来显示。
4.String类型的title参数,表示选项中显示的文字。
转自:http://liangruijun.blog.51cto.com/3061169/641275/
大小: 4.9 KB
大小: 9.8 KB
大小: 4.7 KB
查看图片附件
一.选项菜单(Option Menu)
创建选项菜单的步骤:
1.覆盖Activity的onCreateOptionMenu(Menu menu)方法,当菜单第一次被打开时调用
2.调用Menu的add( )方法添加菜单项(MenuItem),同时可以调用MenuItem的setIcon( )方法来为菜单项设置图标
3.当菜单项(MenuItem)被选择时,覆盖Activity的onOptionsItemSelected(MenuItem item)来响应事件
选项菜单的实例:
package com.android.menu.activity; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class OptionMenuActivity extends Activity { //声明菜单项常量 private static final int ITEM_1 = Menu.FIRST; private static final int ITEM_2 = Menu.FIRST+1; private static final int ITEM_3 = Menu.FIRST+2; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //覆盖onCreateOptionsMenu(Menu menu)来添加菜单项 public boolean onCreateOptionsMenu(Menu menu) { //android.R使用的是系统自带的图标 menu.add(0, ITEM_1, 0, "开始").setIcon(android.R.drawable.ic_media_play); menu.add(0, ITEM_2, 0, "帮助").setIcon(android.R.drawable.ic_menu_help); menu.add(0, ITEM_3, 0, "退出").setIcon(android.R.drawable.ic_menu_close_clear_cancel); return true; } //覆盖onOptionsItemSelected(MenuItem item)来响应菜单选项被单击事件 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ITEM_1: setTitle("开始游戏!"); break; case ITEM_2: setTitle("查看帮助!"); break; case ITEM_3: setTitle("退出游戏!"); break; } return true; } }
效果图:
二.上下文菜单(Context Menu)
创建上下文菜单的步骤:
1.覆盖Activity的onCreateContextMenu(Menu menu)方法,调用Menu的add( )方法添加菜单项(MenuItem).
2.覆盖Activity的oonContextItemSelected(MenuItem item)来响应事件
3.调用registerForContextMenu( )方法来为视图注册上下文菜单
上下文菜单的实例(按住“测试Context Menu”2秒,就会出现上下文菜单):
package com.android.context.activity; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.widget.TextView; public class ContextMenuActivity extends Activity { private static final int ITME_1 = Menu.FIRST; private static final int ITME_2 = Menu.FIRST+1; private static final int ITME_3 = Menu.FIRST+2; private TextView text; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text = (TextView)findViewById(R.id.TextView_1); //调用registerForContextMenu()来注册上下文菜单 registerForContextMenu(text); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(0, ITME_1, 0, "红色背景"); menu.add(0, ITME_2, 0, "蓝色背景"); menu.add(0, ITME_3, 0, "白色背景"); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case ITME_1: //设置TextView的背景颜色 text.setBackgroundColor(Color.RED); break; case ITME_2: text.setBackgroundColor(Color.BLUE); break; case ITME_3: text.setBackgroundColor(Color.WHITE); break; } return true; } }
效果图:
三.子菜单(Sub Menu)
创建子菜单的步骤:
1.覆盖Activity的onCreateOptionMenu(Menu menu)方法,调用Menu的addSubMenu( )方法来添加子菜单(Sub Menu)
2.调用SubMenu的add( )方法来添加子菜单(Sub Menu)
3.覆盖onContextItemSelect( )方法来响应菜单单击事件
子菜单的实例:
package com.android.sub.activity; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; public class SubMenuActivity extends Activity { private static final int ITEM_1 = Menu.FIRST; private static final int ITEM_2 = Menu.FIRST+1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //覆盖onCreateOptionsMenu(Menu menu)方法,添加子菜单项 public boolean onCreateOptionsMenu(Menu menu) { SubMenu ad = menu.addSubMenu("添加").setIcon(android.R.drawable.ic_menu_add); SubMenu re = menu.addSubMenu("关闭").setIcon(android.R.drawable.ic_menu_close_clear_cancel); ad.add(0, ITEM_1, 0, "文件"); ad.add(0, ITEM_2, 0, "图片"); return true; } //覆盖onOptionsItemSelected(MenuItem item),响应菜单选项被单击事件 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ITEM_1: setTitle("添加文件!"); break; case ITEM_2: setTitle("添加图片!"); break; } return true; } }
效果图:
注:menu.add的方法中的参数:
1.int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。可以用到的方法有:
removeGroup(id)
setGroupCheckable(id, checkable, exclusive)
setGroupEnabled(id,boolean enabled)
setGroupVisible(id,visible)
2.int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个item ID对应一个Menu中的选项。在后面使用菜单的时候,就是靠这个item ID来判断,你选中的是哪个选项。
3.int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的顺序来显示。
4.String类型的title参数,表示选项中显示的文字。
转自:http://liangruijun.blog.51cto.com/3061169/641275/
大小: 4.9 KB
大小: 9.8 KB
大小: 4.7 KB
查看图片附件
相关文章推荐
- Android 学习——Android 菜单(OptionMenu)大全 建立你自己的菜单
- Android学习——编写菜单
- Android学习札记三:初涉Service(1)之Context.startService()与Context.bindService()区别
- Android中的Menu(菜单)的三种类型菜单的学习
- 【Android学习日记】(四) 菜单使用例子
- Android学习10--菜单
- android简单demo学习系例之菜单实现
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- Android学习札记三:初涉Service(1)之Context.startService()与Context.bindService()区别(转)
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- Android开发学习笔记:浅谈3大类菜单
- Android中的重要类学习之——Context
- Android中的Menu(菜单)的三种类型菜单的学习
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- Android(OPhone) 学习笔记 - 菜单使用
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- android menu菜单 onCreateOptionsMenu onMenuItemSelected onContextItemSelected
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- Android 菜单(OptionMenu)大全 建立你自己的菜单